	.file	"951422.c"
	.intel_syntax noprefix
	.text
	.globl	KernelMode
	.bss
	.align 4
	.type	KernelMode, @object
	.size	KernelMode, 4
KernelMode:
	.zero	4
	.globl	Executive
	.align 4
	.type	Executive, @object
	.size	Executive, 4
Executive:
	.zero	4
	.globl	DevicePowerState
	.align 4
	.type	DevicePowerState, @object
	.size	DevicePowerState, 4
DevicePowerState:
	.zero	4
	.globl	s
	.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
	.text
	.globl	stub_driver_init
	.type	stub_driver_init, @function
stub_driver_init:
.LFB0:
	.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 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
.LFE0:
	.size	stub_driver_init, .-stub_driver_init
	.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	KbFilter_PnP
	.type	KbFilter_PnP, @function
KbFilter_PnP:
.LFB2:
	.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 -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
	mov	DWORD PTR -88[rbp], 0
	mov	eax, DWORD PTR -80[rbp]
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -56[rbp], eax
	cmp	DWORD PTR -72[rbp], 0
	je	.L47
	cmp	DWORD PTR -72[rbp], 23
	je	.L48
	cmp	DWORD PTR -72[rbp], 2
	je	.L49
	cmp	DWORD PTR -72[rbp], 1
	je	.L50
	cmp	DWORD PTR -72[rbp], 5
	je	.L51
	cmp	DWORD PTR -72[rbp], 3
	je	.L52
	cmp	DWORD PTR -72[rbp], 6
	je	.L53
	cmp	DWORD PTR -72[rbp], 13
	je	.L54
	cmp	DWORD PTR -72[rbp], 4
	je	.L55
	cmp	DWORD PTR -72[rbp], 7
	je	.L56
	cmp	DWORD PTR -72[rbp], 8
	je	.L57
	cmp	DWORD PTR -72[rbp], 9
	je	.L58
	cmp	DWORD PTR -72[rbp], 12
	je	.L59
	cmp	DWORD PTR -72[rbp], 10
	je	.L60
	cmp	DWORD PTR -72[rbp], 11
	je	.L61
	cmp	DWORD PTR -72[rbp], 15
	je	.L62
	cmp	DWORD PTR -72[rbp], 16
	je	.L63
	cmp	DWORD PTR -72[rbp], 17
	je	.L64
	cmp	DWORD PTR -72[rbp], 18
	je	.L65
	cmp	DWORD PTR -72[rbp], 19
	je	.L66
	cmp	DWORD PTR -72[rbp], 20
	jmp	.L13
.L47:
	nop
.L7:
	mov	eax, DWORD PTR -76[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	mov	DWORD PTR -40[rbp], eax
	mov	DWORD PTR -36[rbp], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	je	.L31
	call	errorFn
	jmp	.L32
.L31:
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L33
	call	errorFn
	jmp	.L32
.L33:
	mov	DWORD PTR compRegistered[rip], 1
.L32:
	mov	eax, DWORD PTR -76[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -24[rbp], 224
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -68[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L34
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -84[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
.L34:
	cmp	DWORD PTR -88[rbp], 0
	js	.L35
	mov	eax, DWORD PTR myStatus[rip]
	test	eax, eax
	js	.L35
	mov	DWORD PTR -20[rbp], 1
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -48[rbp], 0
.L35:
	mov	eax, DWORD PTR -88[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	DWORD PTR -12[rbp], 0
	mov	eax, DWORD PTR -104[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	jmp	.L36
.L48:
	nop
.L9:
	mov	DWORD PTR -48[rbp], 1
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L37
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L38
.L37:
	call	errorFn
.L38:
	add	DWORD PTR -64[rbp], 1
	add	DWORD PTR -76[rbp], 1
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -68[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -88[rbp], eax
	jmp	.L36
.L49:
	nop
.L11:
	mov	DWORD PTR -52[rbp], 1
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L39
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L40
.L39:
	call	errorFn
.L40:
	add	DWORD PTR -64[rbp], 1
	add	DWORD PTR -76[rbp], 1
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -68[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -88[rbp], 0
	jmp	.L36
.L50:
	nop
	jmp	.L13
.L51:
	nop
	jmp	.L13
.L52:
	nop
	jmp	.L13
.L53:
	nop
	jmp	.L13
.L54:
	nop
	jmp	.L13
.L55:
	nop
	jmp	.L13
.L56:
	nop
	jmp	.L13
.L57:
	nop
	jmp	.L13
.L58:
	nop
	jmp	.L13
.L59:
	nop
	jmp	.L13
.L60:
	nop
	jmp	.L13
.L61:
	nop
	jmp	.L13
.L62:
	nop
	jmp	.L13
.L63:
	nop
	jmp	.L13
.L64:
	nop
	jmp	.L13
.L65:
	nop
	jmp	.L13
.L66:
	nop
.L13:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L41
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L42
.L41:
	call	errorFn
.L42:
	add	DWORD PTR -64[rbp], 1
	add	DWORD PTR -76[rbp], 1
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -68[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -88[rbp], eax
	nop
.L36:
	mov	eax, DWORD PTR -88[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	KbFilter_PnP, .-KbFilter_PnP
	.globl	main
	.type	main, @function
main:
.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
	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
	mov	DWORD PTR KernelMode[rip], 0
	mov	DWORD PTR Executive[rip], 0
	mov	DWORD PTR DevicePowerState[rip], 1
	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 -44[rbp], 0
	mov	eax, DWORD PTR -40[rbp]
	mov	DWORD PTR -28[rbp], eax
	call	_BLAST_init
	cmp	DWORD PTR -44[rbp], 0
	js	.L68
	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 pended[rip], eax
	mov	DWORD PTR -24[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	cmp	DWORD PTR -36[rbp], 0
	jne	.L69
	mov	DWORD PTR -24[rbp], -1073741637
	mov	DWORD PTR myStatus[rip], -1073741637
.L69:
	call	stub_driver_init
	cmp	DWORD PTR -44[rbp], 0
	jns	.L70
	mov	eax, -1
	jmp	.L71
.L70:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	je	.L97
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 1
	je	.L98
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 3
	je	.L99
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 4
	je	.L100
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 8
	jne	.L101
	jmp	.L96
.L97:
	nop
.L73:
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -32[rbp]
	mov	esi, edx
	mov	edi, eax
	call	KbFilter_CreateClose
	mov	DWORD PTR -44[rbp], eax
	jmp	.L68
.L98:
	nop
.L75:
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -32[rbp]
	mov	esi, edx
	mov	edi, eax
	call	KbFilter_CreateClose
	mov	DWORD PTR -44[rbp], eax
	jmp	.L68
.L99:
	nop
.L77:
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -32[rbp]
	mov	esi, edx
	mov	edi, eax
	call	KbFilter_PnP
	mov	DWORD PTR -44[rbp], eax
	jmp	.L68
.L100:
	nop
.L79:
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -32[rbp]
	mov	esi, edx
	mov	edi, eax
	call	KbFilter_Power
	mov	DWORD PTR -44[rbp], eax
	jmp	.L68
.L96:
.L81:
	mov	edx, DWORD PTR -28[rbp]
	mov	eax, DWORD PTR -32[rbp]
	mov	esi, edx
	mov	edi, eax
	call	KbFilter_InternIoCtl
	mov	DWORD PTR -44[rbp], eax
	jmp	.L68
.L101:
	nop
.L82:
	mov	eax, -1
	jmp	.L71
.L83:
.L68:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L102
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L103
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L86
.L102:
	nop
	jmp	.L84
.L103:
	nop
.L84:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L104
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L105
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L86
.L104:
	nop
	jmp	.L87
.L105:
	nop
.L87:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR UNLOADED[rip]
	cmp	edx, eax
	je	.L86
	cmp	DWORD PTR -44[rbp], -1
	je	.L86
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP2[rip]
	cmp	edx, eax
	je	.L106
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR IPC[rip]
	cmp	edx, eax
	je	.L107
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	jne	.L86
	jmp	.L89
.L106:
	nop
	jmp	.L89
.L107:
	nop
.L89:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L91
	cmp	DWORD PTR -44[rbp], 259
	je	.L86
	call	errorFn
	jmp	.L86
.L91:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	je	.L86
	mov	eax, DWORD PTR lowerDriverReturn[rip]
	cmp	DWORD PTR -44[rbp], eax
	je	.L86
	call	errorFn
.L86:
	mov	eax, DWORD PTR -44[rbp]
.L71:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	main, .-main
	.globl	stubMoreProcessingRequired
	.type	stubMoreProcessingRequired, @function
stubMoreProcessingRequired:
.LFB4:
	.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	.L109
	mov	eax, DWORD PTR MPR1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L108
.L109:
	call	errorFn
	nop
.L108:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	stubMoreProcessingRequired, .-stubMoreProcessingRequired
	.globl	IofCallDriver
	.type	IofCallDriver, @function
IofCallDriver:
.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 -24[rbp], eax
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L113
	mov	edx, DWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	KbFilter_Complete
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], -1073741802
	jne	.L113
	call	stubMoreProcessingRequired
.L113:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L128
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 1
	jne	.L129
	jmp	.L127
.L128:
	nop
.L115:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L119
.L127:
.L117:
	mov	DWORD PTR -28[rbp], -1073741823
	jmp	.L119
.L129:
	nop
.L118:
	mov	DWORD PTR -28[rbp], 259
	nop
.L119:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L120
	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	.L121
.L120:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR1[rip]
	cmp	edx, eax
	jne	.L122
	cmp	DWORD PTR -28[rbp], 259
	jne	.L123
	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	.L121
.L123:
	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	.L121
.L122:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP1[rip]
	cmp	edx, eax
	jne	.L124
	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	.L121
.L124:
	call	errorFn
.L121:
	mov	eax, DWORD PTR -28[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	IofCallDriver, .-IofCallDriver
	.globl	IofCompleteRequest
	.type	IofCompleteRequest, @function
IofCompleteRequest:
.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, 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	.L131
	mov	eax, DWORD PTR DC[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L130
.L131:
	call	errorFn
	nop
.L130:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	IofCompleteRequest, .-IofCompleteRequest
	.globl	KeSetEvent
	.type	KeSetEvent, @function
KeSetEvent:
.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, 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
.LFE7:
	.size	KeSetEvent, .-KeSetEvent
	.globl	KeWaitForSingleObject
	.type	KeWaitForSingleObject, @function
KeWaitForSingleObject:
.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 -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	.L145
	mov	eax, DWORD PTR setEventCalled[rip]
	cmp	eax, 1
	jne	.L146
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR setEventCalled[rip], 0
	jmp	.L139
.L145:
	nop
	jmp	.L137
.L146:
	nop
.L137:
	mov	eax, DWORD PTR customIrp[rip]
	cmp	eax, 1
	jne	.L140
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR customIrp[rip], 0
	jmp	.L139
.L140:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L139
	call	errorFn
.L139:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L147
	nop
.L142:
	mov	eax, 0
	jmp	.L144
.L147:
	nop
.L143:
	mov	eax, -1073741823
.L144:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.globl	KbFilter_Complete
	.type	KbFilter_Complete, @function
KbFilter_Complete:
.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, 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
.LFE9:
	.size	KbFilter_Complete, .-KbFilter_Complete
	.globl	KbFilter_CreateClose
	.type	KbFilter_CreateClose, @function
KbFilter_CreateClose:
.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, 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 myStatus[rip]
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L160
	cmp	DWORD PTR -16[rbp], 2
	jne	.L161
	jmp	.L159
.L160:
	nop
.L152:
	cmp	DWORD PTR -12[rbp], 0
	jne	.L162
	mov	DWORD PTR -20[rbp], -1073741436
	jmp	.L162
.L159:
.L154:
	jmp	.L155
.L161:
	nop
	jmp	.L155
.L162:
	nop
.L155:
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, edx
	mov	edi, eax
	call	KbFilter_DispatchPassThrough
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	KbFilter_CreateClose, .-KbFilter_CreateClose
	.globl	KbFilter_DispatchPassThrough
	.type	KbFilter_DispatchPassThrough, @function
KbFilter_DispatchPassThrough:
.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, 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
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L164
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L165
.L164:
	call	errorFn
.L165:
	add	DWORD PTR -16[rbp], 1
	add	DWORD PTR -20[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
.LFE11:
	.size	KbFilter_DispatchPassThrough, .-KbFilter_DispatchPassThrough
	.globl	KbFilter_Power
	.type	KbFilter_Power, @function
KbFilter_Power:
.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, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	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
	cmp	DWORD PTR -32[rbp], 2
	je	.L182
	cmp	DWORD PTR -32[rbp], 1
	je	.L183
	cmp	DWORD PTR -32[rbp], 0
	je	.L184
	cmp	DWORD PTR -32[rbp], 3
	jmp	.L176
.L182:
	nop
.L169:
	mov	eax, DWORD PTR DevicePowerState[rip]
	cmp	DWORD PTR -12[rbp], eax
	jne	.L185
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR -8[rbp], eax
	jmp	.L176
.L171:
.L173:
.L175:
.L183:
	nop
	jmp	.L176
.L184:
	nop
	jmp	.L176
.L185:
	nop
.L176:
	nop
.L177:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L178
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L179
.L178:
	call	errorFn
.L179:
	add	DWORD PTR -24[rbp], 1
	add	DWORD PTR -20[rbp], 1
	mov	edx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -16[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
.LFE12:
	.size	KbFilter_Power, .-KbFilter_Power
	.globl	PoCallDriver
	.type	PoCallDriver, @function
PoCallDriver:
.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, 64
	mov	DWORD PTR -52[rbp], edi
	mov	DWORD PTR -56[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L187
	mov	edx, DWORD PTR -32[rbp]
	mov	ecx, DWORD PTR -56[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	KbFilter_Complete
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], -1073741802
	jne	.L187
	call	stubMoreProcessingRequired
.L187:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	je	.L202
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 1
	jne	.L203
	jmp	.L201
.L202:
	nop
.L189:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L193
.L201:
.L191:
	mov	DWORD PTR -36[rbp], -1073741823
	jmp	.L193
.L203:
	nop
.L192:
	mov	DWORD PTR -36[rbp], 259
	nop
.L193:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L194
	mov	eax, DWORD PTR IPC[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L195
.L194:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR1[rip]
	cmp	edx, eax
	jne	.L196
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L197
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L195
.L197:
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L195
.L196:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP1[rip]
	cmp	edx, eax
	jne	.L198
	mov	eax, DWORD PTR SKIP2[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L195
.L198:
	call	errorFn
.L195:
	mov	eax, DWORD PTR -36[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	PoCallDriver, .-PoCallDriver
	.globl	KbFilter_InternIoCtl
	.type	KbFilter_InternIoCtl, @function
KbFilter_InternIoCtl:
.LFB14:
	.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
	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
	mov	DWORD PTR -92[rbp], 0
	mov	DWORD PTR -20[rbp], 0
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -56[rbp]
	je	.L232
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -52[rbp]
	je	.L233
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -48[rbp]
	je	.L234
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -44[rbp]
	je	.L235
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -40[rbp]
	je	.L236
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -36[rbp]
	je	.L237
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -32[rbp]
	je	.L238
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -28[rbp]
	je	.L239
	mov	eax, DWORD PTR -88[rbp]
	cmp	eax, DWORD PTR -24[rbp]
	jne	.L240
	jmp	.L222
.L232:
	nop
.L206:
	cmp	DWORD PTR -84[rbp], 0
	je	.L224
	mov	DWORD PTR -92[rbp], -1073741757
	jmp	.L223
.L224:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -76[rbp]
	jge	.L225
	mov	DWORD PTR -92[rbp], -1073741811
	jmp	.L223
.L225:
	mov	eax, DWORD PTR -72[rbp]
	mov	DWORD PTR -12[rbp], eax
	jmp	.L223
.L233:
	nop
.L208:
	mov	DWORD PTR -92[rbp], -1073741822
	jmp	.L223
.L234:
	nop
.L210:
	mov	eax, DWORD PTR -80[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jge	.L226
	mov	DWORD PTR -92[rbp], -1073741811
	jmp	.L223
.L226:
	mov	eax, DWORD PTR -72[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	DWORD PTR -92[rbp], 0
	jmp	.L223
.L212:
.L214:
.L216:
.L218:
.L220:
.L235:
	nop
	jmp	.L223
.L236:
	nop
	jmp	.L223
.L237:
	nop
	jmp	.L223
.L238:
	nop
	jmp	.L223
.L239:
	nop
.L222:
	jmp	.L223
.L240:
	nop
.L223:
	cmp	DWORD PTR -92[rbp], 0
	jns	.L227
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -92[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 -92[rbp]
	jmp	.L228
.L227:
	mov	edx, DWORD PTR -104[rbp]
	mov	eax, DWORD PTR -100[rbp]
	mov	esi, edx
	mov	edi, eax
	call	KbFilter_DispatchPassThrough
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
.L228:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	KbFilter_InternIoCtl, .-KbFilter_InternIoCtl
	.globl	errorFn
	.type	errorFn, @function
errorFn:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
.L242:
	mov	eax, 0
	call	__VERIFIER_error@PLT
	.cfi_endproc
.LFE15:
	.size	errorFn, .-errorFn
	.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	"951422.c"
	.text
	.comm	KernelMode,4,4
	.comm	Executive,4,4
	.comm	DevicePowerState,4,4
	.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
	.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, .L3
	ldr	r3, [r3]
	ldr	r2, .L3+4
	str	r3, [r2]
	ldr	r3, .L3+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L3+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L3+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L3+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L3+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L3+28
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L4:
	.align	2
.L3:
	.word	NP
	.word	s
	.word	pended
	.word	compFptr
	.word	compRegistered
	.word	lowerDriverReturn
	.word	setEventCalled
	.word	customIrp
	.size	stub_driver_init, .-stub_driver_init
	.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, .L7
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L7+4
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L7+8
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, .L7+12
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, .L7+16
	mov	r2, #4
	str	r2, [r3]
	ldr	r3, .L7+20
	mov	r2, #5
	str	r2, [r3]
	ldr	r3, .L7+24
	mov	r2, #6
	str	r2, [r3]
	ldr	r3, .L7+28
	mov	r2, #7
	str	r2, [r3]
	ldr	r3, .L7
	ldr	r3, [r3]
	ldr	r2, .L7+32
	str	r3, [r2]
	ldr	r3, .L7+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L7+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L7+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L7+48
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L7+52
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L7+56
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L8:
	.align	2
.L7:
	.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	KbFilter_PnP
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_PnP, %function
KbFilter_PnP:
	@ args = 0, pretend = 0, frame = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #104
	str	r0, [fp, #-96]
	str	r1, [fp, #-100]
	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]
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	beq	.L51
	ldr	r3, [fp, #-72]
	cmp	r3, #23
	beq	.L52
	ldr	r3, [fp, #-72]
	cmp	r3, #2
	beq	.L53
	ldr	r3, [fp, #-72]
	cmp	r3, #1
	beq	.L54
	ldr	r3, [fp, #-72]
	cmp	r3, #5
	beq	.L55
	ldr	r3, [fp, #-72]
	cmp	r3, #3
	beq	.L56
	ldr	r3, [fp, #-72]
	cmp	r3, #6
	beq	.L57
	ldr	r3, [fp, #-72]
	cmp	r3, #13
	beq	.L58
	ldr	r3, [fp, #-72]
	cmp	r3, #4
	beq	.L59
	ldr	r3, [fp, #-72]
	cmp	r3, #7
	beq	.L60
	ldr	r3, [fp, #-72]
	cmp	r3, #8
	beq	.L61
	ldr	r3, [fp, #-72]
	cmp	r3, #9
	beq	.L62
	ldr	r3, [fp, #-72]
	cmp	r3, #12
	beq	.L63
	ldr	r3, [fp, #-72]
	cmp	r3, #10
	beq	.L64
	ldr	r3, [fp, #-72]
	cmp	r3, #11
	beq	.L65
	ldr	r3, [fp, #-72]
	cmp	r3, #15
	beq	.L66
	ldr	r3, [fp, #-72]
	cmp	r3, #16
	beq	.L67
	ldr	r3, [fp, #-72]
	cmp	r3, #17
	beq	.L68
	ldr	r3, [fp, #-72]
	cmp	r3, #18
	beq	.L69
	ldr	r3, [fp, #-72]
	cmp	r3, #19
	beq	.L70
	ldr	r3, [fp, #-72]
	cmp	r3, #20
	b	.L17
.L51:
	nop
.L11:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-76]
	sub	r3, r3, #1
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, .L71
	ldr	r2, [r3]
	ldr	r3, .L71+4
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L35
	bl	errorFn
	b	.L36
.L35:
	ldr	r3, .L71+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L37
	bl	errorFn
	b	.L36
.L37:
	ldr	r3, .L71+8
	mov	r2, #1
	str	r2, [r3]
.L36:
	ldr	r3, [fp, #-76]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-28]
	mov	r3, #224
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-68]
	bl	IofCallDriver
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, .L71+12
	cmp	r3, r2
	bne	.L38
	ldr	r3, .L71+16
	ldr	r1, [r3]
	ldr	r3, .L71+20
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-84]
	bl	KeWaitForSingleObject
.L38:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	blt	.L39
	ldr	r3, .L71+24
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L39
	mov	r3, #1
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-48]
.L39:
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-12]
	ldr	r2, .L71+24
	ldr	r3, [fp, #-88]
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r1, #0
	ldr	r0, [fp, #-100]
	bl	IofCompleteRequest
	b	.L40
.L52:
	nop
.L13:
	mov	r3, #1
	str	r3, [fp, #-48]
	ldr	r3, .L71
	ldr	r2, [r3]
	ldr	r3, .L71+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L41
	ldr	r3, .L71+28
	ldr	r3, [r3]
	ldr	r2, .L71
	str	r3, [r2]
	b	.L42
.L41:
	bl	errorFn
.L42:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-68]
	bl	IofCallDriver
	str	r0, [fp, #-88]
	b	.L40
.L53:
	nop
.L15:
	mov	r3, #1
	str	r3, [fp, #-52]
	ldr	r3, .L71
	ldr	r2, [r3]
	ldr	r3, .L71+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L43
	ldr	r3, .L71+28
	ldr	r3, [r3]
	ldr	r2, .L71
	str	r3, [r2]
	b	.L44
.L43:
	bl	errorFn
.L44:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-68]
	bl	IofCallDriver
	mov	r3, #0
	str	r3, [fp, #-88]
	b	.L40
.L54:
	nop
	b	.L17
.L55:
	nop
	b	.L17
.L56:
	nop
	b	.L17
.L57:
	nop
	b	.L17
.L58:
	nop
	b	.L17
.L59:
	nop
	b	.L17
.L60:
	nop
	b	.L17
.L61:
	nop
	b	.L17
.L62:
	nop
	b	.L17
.L63:
	nop
	b	.L17
.L64:
	nop
	b	.L17
.L65:
	nop
	b	.L17
.L66:
	nop
	b	.L17
.L67:
	nop
	b	.L17
.L68:
	nop
	b	.L17
.L69:
	nop
	b	.L17
.L70:
	nop
.L17:
	ldr	r3, .L71
	ldr	r2, [r3]
	ldr	r3, .L71+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L45
	ldr	r3, .L71+28
	ldr	r3, [r3]
	ldr	r2, .L71
	str	r3, [r2]
	b	.L46
.L45:
	bl	errorFn
.L46:
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-68]
	bl	IofCallDriver
	str	r0, [fp, #-88]
	nop
.L40:
	ldr	r3, [fp, #-88]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L72:
	.align	2
.L71:
	.word	s
	.word	NP
	.word	compRegistered
	.word	259
	.word	Executive
	.word	KernelMode
	.word	myStatus
	.word	SKIP1
	.size	KbFilter_PnP, .-KbFilter_PnP
	.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, #-44]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-40]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-36]
	ldr	r3, .L114
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+8
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L114+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+32
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+48
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+52
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+56
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+60
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+64
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+68
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+72
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-32]
	bl	_BLAST_init
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	blt	.L102
	ldr	r3, .L114+20
	ldr	r3, [r3]
	ldr	r2, .L114+12
	str	r3, [r2]
	ldr	r3, .L114+68
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L114+68
	ldr	r3, [r3]
	ldr	r2, .L114+64
	str	r3, [r2]
	ldr	r3, .L114+64
	ldr	r3, [r3]
	ldr	r2, .L114+60
	str	r3, [r2]
	ldr	r3, .L114+60
	ldr	r3, [r3]
	ldr	r2, .L114+56
	str	r3, [r2]
	ldr	r3, .L114+56
	ldr	r3, [r3]
	ldr	r2, .L114+48
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, .L114+72
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bne	.L75
	ldr	r3, .L114+76
	str	r3, [fp, #-28]
	ldr	r3, .L114+72
	ldr	r2, .L114+76
	str	r2, [r3]
.L75:
	bl	stub_driver_init
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bge	.L76
	mvn	r3, #0
	b	.L77
.L76:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L103
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	beq	.L104
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #3
	beq	.L105
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #4
	beq	.L106
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #8
	bne	.L107
	b	.L101
.L103:
	nop
.L79:
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	KbFilter_CreateClose
	str	r0, [fp, #-48]
	b	.L74
.L104:
	nop
.L81:
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	KbFilter_CreateClose
	str	r0, [fp, #-48]
	b	.L74
.L105:
	nop
.L83:
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	KbFilter_PnP
	str	r0, [fp, #-48]
	b	.L74
.L106:
	nop
.L85:
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	KbFilter_Power
	str	r0, [fp, #-48]
	b	.L74
.L101:
.L87:
	ldr	r1, [fp, #-32]
	ldr	r0, [fp, #-36]
	bl	KbFilter_InternIoCtl
	str	r0, [fp, #-48]
	b	.L74
.L107:
	nop
.L88:
	mvn	r3, #0
	b	.L77
.L102:
	nop
.L74:
	ldr	r3, .L114+48
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L108
	ldr	r3, .L114+12
	ldr	r2, [r3]
	ldr	r3, .L114+20
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L109
	ldr	r3, .L114+20
	ldr	r3, [r3]
	ldr	r2, .L114+12
	str	r3, [r2]
	b	.L91
.L108:
	nop
	b	.L89
.L109:
	nop
.L89:
	ldr	r3, .L114+48
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L110
	ldr	r3, .L114+12
	ldr	r2, [r3]
	ldr	r3, .L114+40
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L111
	ldr	r3, .L114+40
	ldr	r3, [r3]
	ldr	r2, .L114+12
	str	r3, [r2]
	b	.L91
.L110:
	nop
	b	.L92
.L111:
	nop
.L92:
	ldr	r3, .L114+12
	ldr	r2, [r3]
	ldr	r3, .L114+16
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L91
	ldr	r3, [fp, #-48]
	cmn	r3, #1
	beq	.L91
	ldr	r3, .L114+12
	ldr	r2, [r3]
	ldr	r3, .L114+32
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L112
	ldr	r3, .L114+12
	ldr	r2, [r3]
	ldr	r3, .L114+44
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L113
	ldr	r3, .L114+12
	ldr	r2, [r3]
	ldr	r3, .L114+24
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L91
	b	.L94
.L112:
	nop
	b	.L94
.L113:
	nop
.L94:
	ldr	r3, .L114+48
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L96
	ldr	r3, [fp, #-48]
	ldr	r2, .L114+80
	cmp	r3, r2
	beq	.L91
	bl	errorFn
	b	.L91
.L96:
	ldr	r3, .L114+12
	ldr	r2, [r3]
	ldr	r3, .L114+24
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L91
	ldr	r3, .L114+60
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	beq	.L91
	bl	errorFn
.L91:
	ldr	r3, [fp, #-48]
.L77:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L115:
	.align	2
.L114:
	.word	KernelMode
	.word	Executive
	.word	DevicePowerState
	.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	-1073741637
	.word	259
	.size	main, .-main
	.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, .L120
	ldr	r2, [r3]
	ldr	r3, .L120+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L117
	ldr	r3, .L120+8
	ldr	r3, [r3]
	ldr	r2, .L120
	str	r3, [r2]
	pop	{fp, pc}
.L117:
	bl	errorFn
	nop
	pop	{fp, pc}
.L121:
	.align	2
.L120:
	.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 = 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, #-28]
	ldr	r3, .L140
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L123
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	KbFilter_Complete
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r2, r3
	asr	r3, r2, #31
	str	r2, [fp, #-12]
	str	r3, [fp, #-8]
	sub	r3, fp, #12
	ldmia	r3, {r2-r3}
	mov	r0, #-1073741802
	mvn	r1, #0
	cmp	r3, r1
	cmpeq	r2, r0
	bne	.L123
	bl	stubMoreProcessingRequired
.L123:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L138
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #1
	bne	.L139
	b	.L137
.L138:
	nop
.L125:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L129
.L137:
.L127:
	mov	r3, #-1073741823
	str	r3, [fp, #-32]
	b	.L129
.L139:
	nop
.L128:
	ldr	r3, .L140+4
	str	r3, [fp, #-32]
	nop
.L129:
	ldr	r3, .L140+8
	ldr	r2, [r3]
	ldr	r3, .L140+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L130
	ldr	r3, .L140+16
	ldr	r3, [r3]
	ldr	r2, .L140+8
	str	r3, [r2]
	ldr	r2, .L140+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L131
.L130:
	ldr	r3, .L140+8
	ldr	r2, [r3]
	ldr	r3, .L140+24
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L132
	ldr	r3, [fp, #-32]
	ldr	r2, .L140+4
	cmp	r3, r2
	bne	.L133
	ldr	r3, .L140+28
	ldr	r3, [r3]
	ldr	r2, .L140+8
	str	r3, [r2]
	ldr	r2, .L140+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L131
.L133:
	ldr	r3, .L140+12
	ldr	r3, [r3]
	ldr	r2, .L140+8
	str	r3, [r2]
	ldr	r2, .L140+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L131
.L132:
	ldr	r3, .L140+8
	ldr	r2, [r3]
	ldr	r3, .L140+32
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L134
	ldr	r3, .L140+36
	ldr	r3, [r3]
	ldr	r2, .L140+8
	str	r3, [r2]
	ldr	r2, .L140+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L131
.L134:
	bl	errorFn
.L131:
	ldr	r3, [fp, #-32]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L141:
	.align	2
.L140:
	.word	compRegistered
	.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, .L146
	ldr	r2, [r3]
	ldr	r3, .L146+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L143
	ldr	r3, .L146+8
	ldr	r3, [r3]
	ldr	r2, .L146
	str	r3, [r2]
	b	.L142
.L143:
	bl	errorFn
	nop
.L142:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L147:
	.align	2
.L146:
	.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, .L150
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L151:
	.align	2
.L150:
	.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, .L164
	ldr	r2, [r3]
	ldr	r3, .L164+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L161
	ldr	r3, .L164+8
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L162
	ldr	r3, .L164+12
	ldr	r3, [r3]
	ldr	r2, .L164
	str	r3, [r2]
	ldr	r3, .L164+8
	mov	r2, #0
	str	r2, [r3]
	b	.L155
.L161:
	nop
	b	.L153
.L162:
	nop
.L153:
	ldr	r3, .L164+16
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L156
	ldr	r3, .L164+12
	ldr	r3, [r3]
	ldr	r2, .L164
	str	r3, [r2]
	ldr	r3, .L164+16
	mov	r2, #0
	str	r2, [r3]
	b	.L155
.L156:
	ldr	r3, .L164
	ldr	r2, [r3]
	ldr	r3, .L164+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L155
	bl	errorFn
.L155:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L163
	nop
.L158:
	mov	r3, #0
	b	.L160
.L163:
	nop
.L159:
	mov	r3, #-1073741823
.L160:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L165:
	.align	2
.L164:
	.word	s
	.word	MPR3
	.word	setEventCalled
	.word	NP
	.word	customIrp
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.align	2
	.global	KbFilter_Complete
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_Complete, %function
KbFilter_Complete:
	@ 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	KbFilter_Complete, .-KbFilter_Complete
	.align	2
	.global	KbFilter_CreateClose
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_CreateClose, %function
KbFilter_CreateClose:
	@ 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, .L181
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L178
	ldr	r3, [fp, #-20]
	cmp	r3, #2
	bne	.L179
	b	.L177
.L178:
	nop
.L170:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L180
	ldr	r3, .L181+4
	str	r3, [fp, #-24]
	b	.L180
.L177:
.L172:
	b	.L173
.L179:
	nop
	b	.L173
.L180:
	nop
.L173:
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	ldr	r2, .L181
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	KbFilter_DispatchPassThrough
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L182:
	.align	2
.L181:
	.word	myStatus
	.word	-1073741436
	.size	KbFilter_CreateClose, .-KbFilter_CreateClose
	.align	2
	.global	KbFilter_DispatchPassThrough
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_DispatchPassThrough, %function
KbFilter_DispatchPassThrough:
	@ 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]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	ldr	r3, .L187
	ldr	r2, [r3]
	ldr	r3, .L187+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L184
	ldr	r3, .L187+8
	ldr	r3, [r3]
	ldr	r2, .L187
	str	r3, [r2]
	b	.L185
.L184:
	bl	errorFn
.L185:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	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}
.L188:
	.align	2
.L187:
	.word	s
	.word	NP
	.word	SKIP1
	.size	KbFilter_DispatchPassThrough, .-KbFilter_DispatchPassThrough
	.align	2
	.global	KbFilter_Power
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_Power, %function
KbFilter_Power:
	@ 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, #-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]
	ldr	r3, [fp, #-36]
	cmp	r3, #2
	beq	.L204
	ldr	r3, [fp, #-36]
	cmp	r3, #1
	beq	.L205
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	beq	.L206
	ldr	r3, [fp, #-36]
	cmp	r3, #3
	b	.L198
.L204:
	nop
.L191:
	ldr	r3, .L208
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L207
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	b	.L198
.L193:
.L196:
.L197:
.L205:
	nop
	b	.L198
.L206:
	nop
	b	.L198
.L207:
	nop
.L198:
	nop
.L199:
	ldr	r3, .L208+4
	ldr	r2, [r3]
	ldr	r3, .L208+8
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L200
	ldr	r3, .L208+12
	ldr	r3, [r3]
	ldr	r2, .L208+4
	str	r3, [r2]
	b	.L201
.L200:
	bl	errorFn
.L201:
	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	r1, [fp, #-44]
	ldr	r0, [fp, #-20]
	bl	PoCallDriver
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L209:
	.align	2
.L208:
	.word	DevicePowerState
	.word	s
	.word	NP
	.word	SKIP1
	.size	KbFilter_Power, .-KbFilter_Power
	.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, #-28]
	ldr	r3, .L228
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L211
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-40]
	bl	KbFilter_Complete
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #-1073741802
	bne	.L211
	bl	stubMoreProcessingRequired
.L211:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L226
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bne	.L227
	b	.L225
.L226:
	nop
.L213:
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L217
.L225:
.L215:
	mov	r3, #-1073741823
	str	r3, [fp, #-32]
	b	.L217
.L227:
	nop
.L216:
	ldr	r3, .L228+4
	str	r3, [fp, #-32]
	nop
.L217:
	ldr	r3, .L228+8
	ldr	r2, [r3]
	ldr	r3, .L228+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L218
	ldr	r3, .L228+16
	ldr	r3, [r3]
	ldr	r2, .L228+8
	str	r3, [r2]
	ldr	r2, .L228+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L219
.L218:
	ldr	r3, .L228+8
	ldr	r2, [r3]
	ldr	r3, .L228+24
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L220
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L228+4
	cmp	r3, r2
	bne	.L221
	ldr	r3, .L228+28
	ldr	r3, [r3]
	ldr	r2, .L228+8
	str	r3, [r2]
	ldr	r2, .L228+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L219
.L221:
	ldr	r3, .L228+12
	ldr	r3, [r3]
	ldr	r2, .L228+8
	str	r3, [r2]
	ldr	r2, .L228+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L219
.L220:
	ldr	r3, .L228+8
	ldr	r2, [r3]
	ldr	r3, .L228+32
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L222
	ldr	r3, .L228+36
	ldr	r3, [r3]
	ldr	r2, .L228+8
	str	r3, [r2]
	ldr	r2, .L228+20
	ldr	r3, [fp, #-32]
	str	r3, [r2]
	b	.L219
.L222:
	bl	errorFn
.L219:
	ldr	r3, [fp, #-32]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L229:
	.align	2
.L228:
	.word	compRegistered
	.word	259
	.word	s
	.word	NP
	.word	IPC
	.word	lowerDriverReturn
	.word	MPR1
	.word	MPR3
	.word	SKIP1
	.word	SKIP2
	.size	PoCallDriver, .-PoCallDriver
	.align	2
	.global	KbFilter_InternIoCtl
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_InternIoCtl, %function
KbFilter_InternIoCtl:
	@ 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]
	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]
	mov	r3, #0
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-60]
	cmp	r2, r3
	beq	.L258
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	beq	.L259
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	beq	.L260
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-48]
	cmp	r2, r3
	beq	.L261
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	beq	.L262
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	beq	.L263
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	beq	.L264
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	beq	.L265
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L266
	b	.L252
.L258:
	nop
.L232:
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L245
	ldr	r3, .L267
	str	r3, [fp, #-96]
	b	.L244
.L245:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-80]
	cmp	r2, r3
	bge	.L246
	mov	r3, #-1073741811
	str	r3, [fp, #-96]
	b	.L244
.L246:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-16]
	b	.L244
.L259:
	nop
.L234:
	mov	r3, #-1073741822
	str	r3, [fp, #-96]
	b	.L244
.L260:
	nop
.L236:
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	bge	.L247
	mov	r3, #-1073741811
	str	r3, [fp, #-96]
	b	.L244
.L247:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-96]
	b	.L244
.L238:
.L248:
.L249:
.L250:
.L251:
.L261:
	nop
	b	.L244
.L262:
	nop
	b	.L244
.L263:
	nop
	b	.L244
.L264:
	nop
	b	.L244
.L265:
	nop
.L252:
	b	.L244
.L266:
	nop
.L244:
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bge	.L253
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-8]
	ldr	r2, .L267+4
	ldr	r3, [fp, #-96]
	str	r3, [r2]
	mov	r1, #0
	ldr	r0, [fp, #-108]
	bl	IofCompleteRequest
	ldr	r3, [fp, #-96]
	b	.L254
.L253:
	ldr	r1, [fp, #-108]
	ldr	r0, [fp, #-104]
	bl	KbFilter_DispatchPassThrough
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
.L254:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L268:
	.align	2
.L267:
	.word	-1073741757
	.word	myStatus
	.size	KbFilter_InternIoCtl, .-KbFilter_InternIoCtl
	.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
.L270:
	bl	__VERIFIER_error
	.size	errorFn, .-errorFn
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
