	.file	"109007.c"
	.intel_syntax noprefix
	.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	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 8
	.type	compFptr, @object
	.size	compFptr, 8
compFptr:
	.zero	8
	.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	_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	QWORD 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	DriverEntry
	.type	DriverEntry, @function
DriverEntry:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	call	__VERIFIER_nondet_long@PLT
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 27
	setbe	al
	movzx	eax, al
	mov	edi, eax
	call	__VERIFIER_assume@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	add	rdx, 14
	lea	rcx, KbFilter_DispatchPassThrough[rip]
	mov	QWORD PTR [rax+rdx*8], rcx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_CreateClose[rip]
	mov	QWORD PTR 112[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_CreateClose[rip]
	mov	QWORD PTR 128[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_PnP[rip]
	mov	QWORD PTR 328[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_Power[rip]
	mov	QWORD PTR 288[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_InternIoCtl[rip]
	mov	QWORD PTR 232[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_Unload[rip]
	mov	QWORD PTR 104[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 48[rax]
	lea	rdx, KbFilter_AddDevice[rip]
	mov	QWORD PTR 8[rax], rdx
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	DriverEntry, .-DriverEntry
	.globl	KbFilter_AddDevice
	.type	KbFilter_AddDevice, @function
KbFilter_AddDevice:
.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	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	sub	rsp, 8
	lea	rdx, -32[rbp]
	push	rdx
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 11
	mov	edx, 0
	mov	esi, 104
	mov	rdi, rax
	call	IoCreateDevice
	add	rsp, 16
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	jns	.L8
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L10
.L8:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	edx, 104
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	IoAttachDeviceToDeviceStack
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 16[rdx], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR 96[rax], 1
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 101[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 102[rax], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	BYTE PTR 100[rax], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -32[rbp]
	or	rdx, 8196
	mov	QWORD PTR 56[rax], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -32[rbp]
	and	edx, 4294967167
	mov	QWORD PTR 56[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
.L10:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L11
	call	__stack_chk_fail@PLT
.L11:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	KbFilter_AddDevice, .-KbFilter_AddDevice
	.globl	KbFilter_Complete
	.type	KbFilter_Complete, @function
KbFilter_Complete:
.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, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	KeSetEvent
	mov	rax, -1073741802
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	KbFilter_Complete, .-KbFilter_Complete
	.globl	KbFilter_CreateClose
	.type	KbFilter_CreateClose, @function
KbFilter_CreateClose:
.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, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR myStatus[rip]
	cdqe
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L25
	mov	rax, QWORD PTR -40[rbp]
	movzx	eax, BYTE PTR [rax]
	cmp	al, 2
	jne	.L26
	jmp	.L24
.L25:
	nop
.L16:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	eax, eax
	jne	.L20
	mov	QWORD PTR -48[rbp], -1073741436
	jmp	.L19
.L20:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rdi, rax
	call	InterlockedIncrement@PLT
	mov	QWORD PTR -16[rbp], rax
	jmp	.L19
.L24:
.L18:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 24
	mov	rdi, rax
	call	InterlockedDecrement@PLT
	mov	QWORD PTR -24[rbp], rax
	jmp	.L19
.L26:
	nop
.L19:
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_DispatchPassThrough
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	KbFilter_CreateClose, .-KbFilter_CreateClose
	.globl	KbFilter_DispatchPassThrough
	.type	KbFilter_DispatchPassThrough, @function
KbFilter_DispatchPassThrough:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L28
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L29
.L28:
	call	errorFn
.L29:
	mov	rax, QWORD PTR -32[rbp]
	movzx	eax, BYTE PTR 67[rax]
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -32[rbp]
	mov	BYTE PTR 67[rax], dl
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 184[rax]
	lea	rdx, 68[rax]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	IofCallDriver
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	KbFilter_DispatchPassThrough, .-KbFilter_DispatchPassThrough
	.globl	KbFilter_InternIoCtl
	.type	KbFilter_InternIoCtl, @function
KbFilter_InternIoCtl:
.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, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR 56[rax], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 721411
	je	.L61
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 721923
	je	.L62
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 737219
	je	.L63
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 720896
	je	.L64
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 721024
	je	.L65
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 720960
	je	.L66
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 720904
	je	.L67
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 720928
	je	.L68
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 20[rax]
	cmp	rax, 720900
	jne	.L69
	jmp	.L49
.L61:
	nop
.L33:
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 40[rax]
	test	eax, eax
	je	.L51
	mov	QWORD PTR -48[rbp], -1073741757
	jmp	.L50
.L51:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 12[rax]
	cmp	rax, 15
	ja	.L52
	mov	QWORD PTR -48[rbp], -1073741811
	jmp	.L50
.L52:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 28[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rcx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 32[rcx], rax
	mov	QWORD PTR 40[rcx], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	lea	rdx, KbFilter_ServiceCallback[rip]
	mov	QWORD PTR 8[rax], rdx
	jmp	.L50
.L62:
	nop
.L35:
	mov	QWORD PTR -48[rbp], -1073741822
	jmp	.L50
.L63:
	nop
.L37:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 12[rax]
	cmp	rax, 47
	ja	.L53
	mov	QWORD PTR -48[rbp], -1073741811
	jmp	.L50
.L53:
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR 28[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L54
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 56[rax], rdx
.L54:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_InitializationRoutine[rip]
	mov	QWORD PTR 8[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L55
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 64[rax], rdx
.L55:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, KbFilter_IsrHook[rip]
	mov	QWORD PTR 16[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 72[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 80[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR 88[rax], rdx
	mov	QWORD PTR -48[rbp], 0
	jmp	.L50
.L39:
.L41:
.L43:
.L45:
.L47:
.L64:
	nop
	jmp	.L50
.L65:
	nop
	jmp	.L50
.L66:
	nop
	jmp	.L50
.L67:
	nop
	jmp	.L50
.L68:
	nop
.L49:
	jmp	.L50
.L69:
	nop
.L50:
	cmp	QWORD PTR -48[rbp], 0
	jns	.L56
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	rax, QWORD PTR -64[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	IofCompleteRequest
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L57
.L56:
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_DispatchPassThrough
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
.L57:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	KbFilter_InternIoCtl, .-KbFilter_InternIoCtl
	.globl	KbFilter_PnP
	.type	KbFilter_PnP, @function
KbFilter_PnP:
.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, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -96[rbp], 0
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	test	al, al
	je	.L131
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 23
	je	.L132
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 2
	je	.L133
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 1
	je	.L134
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 5
	je	.L135
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 3
	je	.L136
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 6
	je	.L137
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 13
	je	.L138
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 4
	je	.L139
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 7
	je	.L140
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 8
	je	.L141
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 9
	je	.L142
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 12
	je	.L143
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 10
	je	.L144
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 11
	je	.L145
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 15
	je	.L146
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 16
	je	.L147
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 17
	je	.L148
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 18
	je	.L149
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 19
	je	.L150
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 20
	jmp	.L113
.L131:
	nop
.L72:
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 184[rax]
	sub	rax, 68
	mov	QWORD PTR -64[rbp], rax
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, 52
	mov	rsi, rcx
	mov	rdi, rax
	call	memcpy@PLT
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR 3[rax], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	je	.L114
	call	errorFn
	jmp	.L115
.L114:
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L116
	call	errorFn
	jmp	.L115
.L116:
	mov	DWORD PTR compRegistered[rip], 1
	lea	rax, KbFilter_Complete[rip]
	mov	QWORD PTR compFptr[rip], rax
.L115:
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 184[rax]
	sub	rax, 68
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, KbFilter_Complete[rip]
	mov	QWORD PTR 52[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	lea	rdx, -48[rbp]
	mov	QWORD PTR 60[rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	BYTE PTR 3[rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	BYTE PTR 3[rax], 64
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 3[rax]
	or	eax, -128
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -56[rbp]
	movzx	eax, BYTE PTR 3[rax]
	or	eax, 32
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	BYTE PTR 3[rax], dl
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	IofCallDriver
	mov	QWORD PTR -96[rbp], rax
	cmp	QWORD PTR -96[rbp], 259
	jne	.L117
	lea	rax, -48[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	esi, 0
	mov	rdi, rax
	call	KeWaitForSingleObject
.L117:
	cmp	QWORD PTR -96[rbp], 0
	js	.L118
	mov	eax, DWORD PTR myStatus[rip]
	test	eax, eax
	js	.L118
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR 100[rax], 1
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR 102[rax], 0
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR 101[rax], 0
.L118:
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	QWORD PTR 48[rax], rdx
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR 56[rax], 0
	mov	rax, QWORD PTR -112[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	IofCompleteRequest
	jmp	.L119
.L132:
	nop
.L74:
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR 101[rax], 1
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L120
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L121
.L120:
	call	errorFn
.L121:
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR 67[rax]
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	BYTE PTR 67[rax], dl
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 184[rax]
	lea	rdx, 68[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	IofCallDriver
	mov	QWORD PTR -96[rbp], rax
	jmp	.L119
.L133:
	nop
.L76:
	mov	rax, QWORD PTR -88[rbp]
	mov	BYTE PTR 102[rax], 1
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L122
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L123
.L122:
	call	errorFn
.L123:
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR 67[rax]
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	BYTE PTR 67[rax], dl
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 184[rax]
	lea	rdx, 68[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	IofCallDriver
	mov	QWORD PTR -96[rbp], 0
	jmp	.L119
.L78:
.L80:
.L82:
.L84:
.L86:
.L88:
.L90:
.L92:
.L94:
.L96:
.L98:
.L100:
.L102:
.L104:
.L106:
.L108:
.L110:
.L112:
.L134:
	nop
	jmp	.L113
.L135:
	nop
	jmp	.L113
.L136:
	nop
	jmp	.L113
.L137:
	nop
	jmp	.L113
.L138:
	nop
	jmp	.L113
.L139:
	nop
	jmp	.L113
.L140:
	nop
	jmp	.L113
.L141:
	nop
	jmp	.L113
.L142:
	nop
	jmp	.L113
.L143:
	nop
	jmp	.L113
.L144:
	nop
	jmp	.L113
.L145:
	nop
	jmp	.L113
.L146:
	nop
	jmp	.L113
.L147:
	nop
	jmp	.L113
.L148:
	nop
	jmp	.L113
.L149:
	nop
	jmp	.L113
.L150:
	nop
.L113:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L124
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L125
.L124:
	call	errorFn
.L125:
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR 67[rax]
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	BYTE PTR 67[rax], dl
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR 184[rax]
	lea	rdx, 68[rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	IofCallDriver
	mov	QWORD PTR -96[rbp], rax
	nop
.L119:
	mov	rax, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L127
	call	__stack_chk_fail@PLT
.L127:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	KbFilter_PnP, .-KbFilter_PnP
	.globl	KbFilter_Power
	.type	KbFilter_Power, @function
KbFilter_Power:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 184[rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 2
	je	.L166
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 1
	je	.L167
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 1[rax]
	test	al, al
	je	.L168
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR 1[rax]
	cmp	al, 3
	jmp	.L160
.L166:
	nop
.L153:
	cmp	DWORD PTR -28[rbp], 1
	jne	.L169
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR 96[rax], edx
	jmp	.L160
.L155:
.L157:
.L159:
.L167:
	nop
	jmp	.L160
.L168:
	nop
	jmp	.L160
.L169:
	nop
.L160:
	nop
.L161:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L162
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L163
.L162:
	call	errorFn
.L163:
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR 67[rax]
	add	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	BYTE PTR 67[rax], dl
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR 184[rax]
	lea	rdx, 68[rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 16[rax]
	mov	rdx, QWORD PTR -48[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	PoCallDriver
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	KbFilter_Power, .-KbFilter_Power
	.globl	KbFilter_InitializationRoutine
	.type	KbFilter_InitializationRoutine, @function
KbFilter_InitializationRoutine:
.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, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 56[rax]
	test	rax, rax
	je	.L171
	mov	rax, QWORD PTR -8[rbp]
	mov	r9, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	rdi, QWORD PTR -56[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	r8, rdi
	mov	rdi, rax
	call	r9
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 0
	jns	.L171
	mov	rax, QWORD PTR -16[rbp]
	jmp	.L172
.L171:
	mov	rax, QWORD PTR -56[rbp]
	mov	BYTE PTR [rax], 1
	mov	rax, QWORD PTR -16[rbp]
.L172:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	KbFilter_InitializationRoutine, .-KbFilter_InitializationRoutine
	.globl	KbFilter_IsrHook
	.type	KbFilter_IsrHook, @function
KbFilter_IsrHook:
.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, 64
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, ecx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	mov	BYTE PTR -44[rbp], al
	mov	BYTE PTR -9[rbp], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 64[rax]
	test	rax, rax
	je	.L174
	mov	rax, QWORD PTR -8[rbp]
	mov	r10, QWORD PTR 64[rax]
	movzx	ecx, BYTE PTR -44[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 48[rax]
	mov	r8, QWORD PTR -64[rbp]
	mov	rdi, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	sub	rsp, 8
	push	QWORD PTR 16[rbp]
	mov	r9, r8
	mov	r8, rdi
	mov	rdi, rax
	call	r10
	add	rsp, 16
	mov	BYTE PTR -9[rbp], al
	cmp	BYTE PTR -9[rbp], 0
	jne	.L175
	movzx	eax, BYTE PTR -9[rbp]
	jmp	.L176
.L175:
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L174
	movzx	eax, BYTE PTR -9[rbp]
	jmp	.L176
.L174:
	mov	rax, QWORD PTR -64[rbp]
	mov	BYTE PTR [rax], 1
	movzx	eax, BYTE PTR -9[rbp]
.L176:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	KbFilter_IsrHook, .-KbFilter_IsrHook
	.globl	KbFilter_ServiceCallback
	.type	KbFilter_ServiceCallback, @function
KbFilter_ServiceCallback:
.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 80[rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 40[rax]
	mov	r8, rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR 32[rax]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	r8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	KbFilter_ServiceCallback, .-KbFilter_ServiceCallback
	.globl	KbFilter_Unload
	.type	KbFilter_Unload, @function
KbFilter_Unload:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	KbFilter_Unload, .-KbFilter_Unload
	.globl	pirp
	.bss
	.align 8
	.type	pirp, @object
	.size	pirp, 8
pirp:
	.zero	8
	.text
	.globl	stub_driver_init
	.type	stub_driver_init, @function
stub_driver_init:
.LFB14:
	.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	QWORD 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
.LFE14:
	.size	stub_driver_init, .-stub_driver_init
	.globl	main
	.type	main, @function
main:
.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, 1408
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -1396[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -1392[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -1388[rbp], eax
	lea	rax, -1264[rbp]
	mov	QWORD PTR -1072[rbp], rax
	lea	rax, -1360[rbp]
	mov	QWORD PTR -304[rbp], rax
	call	__VERIFIER_nondet_uchar@PLT
	mov	BYTE PTR -784[rbp], al
	call	__VERIFIER_nondet_uchar@PLT
	mov	BYTE PTR -716[rbp], al
	call	__VERIFIER_nondet_uchar@PLT
	mov	BYTE PTR -648[rbp], al
	call	__VERIFIER_nondet_uchar@PLT
	mov	BYTE PTR -783[rbp], al
	call	__VERIFIER_nondet_uchar@PLT
	mov	BYTE PTR -715[rbp], al
	call	__VERIFIER_nondet_uchar@PLT
	mov	BYTE PTR -647[rbp], al
	lea	rax, -1312[rbp]
	mov	QWORD PTR -756[rbp], rax
	lea	rax, -1312[rbp]
	mov	QWORD PTR -688[rbp], rax
	lea	rax, -1312[rbp]
	mov	QWORD PTR -620[rbp], rax
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -772[rbp], rax
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -704[rbp], rax
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -636[rbp], rax
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -764[rbp], rax
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -696[rbp], rax
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -628[rbp], rax
	lea	rax, -784[rbp]
	add	rax, 68
	mov	QWORD PTR -392[rbp], rax
	lea	rax, -576[rbp]
	mov	QWORD PTR pirp[rip], rax
	call	_BLAST_init
	lea	rdx, -1376[rbp]
	lea	rax, -352[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	DriverEntry
	mov	QWORD PTR -1384[rbp], rax
	cmp	QWORD PTR -1384[rbp], 0
	js	.L184
	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]
	cdqe
	mov	QWORD PTR compFptr[rip], rax
	mov	rax, QWORD PTR compFptr[rip]
	mov	DWORD PTR pended[rip], eax
	mov	rax, QWORD PTR pirp[rip]
	mov	QWORD PTR 48[rax], 0
	mov	DWORD PTR myStatus[rip], 0
	cmp	DWORD PTR -1388[rbp], 0
	jne	.L185
	mov	rax, QWORD PTR pirp[rip]
	mov	QWORD PTR 48[rax], -1073741637
	mov	DWORD PTR myStatus[rip], -1073741637
.L185:
	lea	rdx, -1152[rbp]
	lea	rax, -352[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_AddDevice
	mov	QWORD PTR -1384[rbp], rax
	call	stub_driver_init
	cmp	QWORD PTR -1384[rbp], 0
	jns	.L186
	mov	eax, -1
	jmp	.L211
.L186:
	cmp	DWORD PTR -1392[rbp], 0
	je	.L219
	cmp	DWORD PTR -1392[rbp], 1
	je	.L220
	cmp	DWORD PTR -1392[rbp], 2
	je	.L221
	cmp	DWORD PTR -1392[rbp], 3
	je	.L222
	cmp	DWORD PTR -1392[rbp], 4
	je	.L223
	cmp	DWORD PTR -1392[rbp], 8
	jne	.L224
	jmp	.L218
.L219:
	nop
.L189:
	mov	rdx, QWORD PTR pirp[rip]
	lea	rax, -1152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_CreateClose
	mov	QWORD PTR -1384[rbp], rax
	jmp	.L184
.L220:
	nop
.L191:
	mov	rdx, QWORD PTR pirp[rip]
	lea	rax, -1152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_CreateClose
	mov	QWORD PTR -1384[rbp], rax
	jmp	.L184
.L221:
	nop
.L193:
	mov	rdx, QWORD PTR pirp[rip]
	lea	rax, -1152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_IoCtl@PLT
	mov	QWORD PTR -1384[rbp], rax
	jmp	.L184
.L222:
	nop
.L195:
	mov	rdx, QWORD PTR pirp[rip]
	lea	rax, -1152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_PnP
	mov	QWORD PTR -1384[rbp], rax
	jmp	.L184
.L223:
	nop
.L197:
	mov	rdx, QWORD PTR pirp[rip]
	lea	rax, -1152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_Power
	mov	QWORD PTR -1384[rbp], rax
	jmp	.L184
.L218:
.L199:
	mov	rdx, QWORD PTR pirp[rip]
	lea	rax, -1152[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	KbFilter_InternIoCtl
	mov	QWORD PTR -1384[rbp], rax
	jmp	.L184
.L224:
	nop
.L200:
	mov	eax, -1
	jmp	.L211
.L201:
.L184:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L225
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L226
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L204
.L225:
	nop
	jmp	.L202
.L226:
	nop
.L202:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L227
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L228
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L204
.L227:
	nop
	jmp	.L205
.L228:
	nop
.L205:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR UNLOADED[rip]
	cmp	edx, eax
	je	.L204
	cmp	QWORD PTR -1384[rbp], -1
	je	.L204
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP2[rip]
	cmp	edx, eax
	je	.L229
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR IPC[rip]
	cmp	edx, eax
	je	.L230
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	jne	.L204
	jmp	.L207
.L229:
	nop
	jmp	.L207
.L230:
	nop
.L207:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L209
	cmp	QWORD PTR -1384[rbp], 259
	je	.L204
	call	errorFn
	jmp	.L204
.L209:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	jne	.L204
	cmp	QWORD PTR -1384[rbp], 259
	jne	.L204
	call	errorFn
.L204:
	mov	rax, QWORD PTR -1384[rbp]
.L211:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L212
	call	__stack_chk_fail@PLT
.L212:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	main, .-main
	.globl	_SLAM_alloc_dummy
	.bss
	.type	_SLAM_alloc_dummy, @object
	.size	_SLAM_alloc_dummy, 1
_SLAM_alloc_dummy:
	.zero	1
	.text
	.globl	ExAcquireFastMutex
	.type	ExAcquireFastMutex, @function
ExAcquireFastMutex:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	ExAcquireFastMutex, .-ExAcquireFastMutex
	.globl	ExReleaseFastMutex
	.type	ExReleaseFastMutex, @function
ExReleaseFastMutex:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	ExReleaseFastMutex, .-ExReleaseFastMutex
	.globl	ExAllocatePoolWithTag
	.type	ExAllocatePoolWithTag, @function
ExAllocatePoolWithTag:
.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	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	rax, QWORD PTR -32[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	ExAllocatePoolWithTag, .-ExAllocatePoolWithTag
	.globl	ExFreePool
	.type	ExFreePool, @function
ExFreePool:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	ExFreePool, .-ExFreePool
	.globl	ExfInterlockedInsertHeadList
	.type	ExfInterlockedInsertHeadList, @function
ExfInterlockedInsertHeadList:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	ExfInterlockedInsertHeadList, .-ExfInterlockedInsertHeadList
	.globl	ExfInterlockedInsertTailList
	.type	ExfInterlockedInsertTailList, @function
ExfInterlockedInsertTailList:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	ExfInterlockedInsertTailList, .-ExfInterlockedInsertTailList
	.globl	ExfInterlockedRemoveHeadList
	.type	ExfInterlockedRemoveHeadList, @function
ExfInterlockedRemoveHeadList:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	ExfInterlockedRemoveHeadList, .-ExfInterlockedRemoveHeadList
	.globl	IoAllocateMdl
	.type	IoAllocateMdl, @function
IoAllocateMdl:
.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, ecx
	mov	QWORD PTR -48[rbp], r8
	mov	BYTE PTR -36[rbp], dl
	mov	BYTE PTR -40[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jne	.L250
	nop
.L247:
	mov	edi, 56
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L249
.L250:
	nop
.L248:
	mov	eax, 0
.L249:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	IoAllocateMdl, .-IoAllocateMdl
	.globl	IoAttachDeviceToDeviceStack
	.type	IoAttachDeviceToDeviceStack, @function
IoAttachDeviceToDeviceStack:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L256
	nop
.L253:
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L255
.L256:
	nop
.L254:
	mov	eax, 0
.L255:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	IoAttachDeviceToDeviceStack, .-IoAttachDeviceToDeviceStack
	.globl	IoBuildAsynchronousFsdRequest
	.type	IoBuildAsynchronousFsdRequest, @function
IoBuildAsynchronousFsdRequest:
.LFB25:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	DWORD PTR customIrp[rip], 1
	cmp	DWORD PTR -12[rbp], 0
	jne	.L262
	nop
.L259:
	mov	edi, 216
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L261
.L262:
	nop
.L260:
	mov	eax, 0
.L261:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	IoBuildAsynchronousFsdRequest, .-IoBuildAsynchronousFsdRequest
	.globl	IoBuildDeviceIoControlRequest
	.type	IoBuildDeviceIoControlRequest, @function
IoBuildDeviceIoControlRequest:
.LFB26:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	mov	eax, DWORD PTR 16[rbp]
	mov	BYTE PTR -68[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	DWORD PTR customIrp[rip], 1
	cmp	DWORD PTR -12[rbp], 0
	jne	.L268
	nop
.L265:
	mov	edi, 216
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L267
.L268:
	nop
.L266:
	mov	eax, 0
.L267:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	IoBuildDeviceIoControlRequest, .-IoBuildDeviceIoControlRequest
	.globl	IoCreateDevice
	.type	IoCreateDevice, @function
IoCreateDevice:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	QWORD PTR -72[rbp], r8
	mov	eax, r9d
	mov	BYTE PTR -76[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 0
	jne	.L274
	nop
.L271:
	mov	edi, 368
	call	malloc@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR 16[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -48[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR 16[rbp]
	mov	rbx, QWORD PTR [rax]
	mov	edi, edx
	call	malloc@PLT
	mov	QWORD PTR 80[rbx], rax
	mov	eax, 0
	jmp	.L273
.L274:
	nop
.L272:
	mov	rax, -1073741823
.L273:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	IoCreateDevice, .-IoCreateDevice
	.globl	IoCreateSymbolicLink
	.type	IoCreateSymbolicLink, @function
IoCreateSymbolicLink:
.LFB28:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L280
	nop
.L277:
	mov	eax, 0
	jmp	.L279
.L280:
	nop
.L278:
	mov	rax, -1073741823
.L279:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	IoCreateSymbolicLink, .-IoCreateSymbolicLink
	.globl	IoDeleteDevice
	.type	IoDeleteDevice, @function
IoDeleteDevice:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	IoDeleteDevice, .-IoDeleteDevice
	.globl	IoDeleteSymbolicLink
	.type	IoDeleteSymbolicLink, @function
IoDeleteSymbolicLink:
.LFB30:
	.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	QWORD PTR -24[rbp], rdi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L288
	nop
.L285:
	mov	eax, 0
	jmp	.L287
.L288:
	nop
.L286:
	mov	rax, -1073741823
.L287:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	IoDeleteSymbolicLink, .-IoDeleteSymbolicLink
	.globl	IoDetachDevice
	.type	IoDetachDevice, @function
IoDetachDevice:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	IoDetachDevice, .-IoDetachDevice
	.globl	IoFreeIrp
	.type	IoFreeIrp, @function
IoFreeIrp:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	IoFreeIrp, .-IoFreeIrp
	.globl	IoFreeMdl
	.type	IoFreeMdl, @function
IoFreeMdl:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	IoFreeMdl, .-IoFreeMdl
	.globl	IoGetConfigurationInformation
	.type	IoGetConfigurationInformation, @function
IoGetConfigurationInformation:
.LFB34:
	.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	edi, 80
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	IoGetConfigurationInformation, .-IoGetConfigurationInformation
	.globl	IoQueryDeviceDescription
	.type	IoQueryDeviceDescription, @function
IoQueryDeviceDescription:
.LFB35:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L302
	nop
.L299:
	mov	eax, 0
	jmp	.L301
.L302:
	nop
.L300:
	mov	rax, -1073741823
.L301:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	IoQueryDeviceDescription, .-IoQueryDeviceDescription
	.globl	IoRegisterDeviceInterface
	.type	IoRegisterDeviceInterface, @function
IoRegisterDeviceInterface:
.LFB36:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L308
	nop
.L305:
	mov	eax, 0
	jmp	.L307
.L308:
	nop
.L306:
	mov	rax, -1073741808
.L307:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	IoRegisterDeviceInterface, .-IoRegisterDeviceInterface
	.globl	IoReleaseCancelSpinLock
	.type	IoReleaseCancelSpinLock, @function
IoReleaseCancelSpinLock:
.LFB37:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	IoReleaseCancelSpinLock, .-IoReleaseCancelSpinLock
	.globl	IoSetDeviceInterfaceState
	.type	IoSetDeviceInterfaceState, @function
IoSetDeviceInterfaceState:
.LFB38:
	.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	QWORD PTR -24[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -28[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L316
	nop
.L313:
	mov	eax, 0
	jmp	.L315
.L316:
	nop
.L314:
	mov	rax, -1073741823
.L315:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	IoSetDeviceInterfaceState, .-IoSetDeviceInterfaceState
	.globl	IoSetHardErrorOrVerifyDevice
	.type	IoSetHardErrorOrVerifyDevice, @function
IoSetHardErrorOrVerifyDevice:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	IoSetHardErrorOrVerifyDevice, .-IoSetHardErrorOrVerifyDevice
	.globl	stubMoreProcessingRequired
	.type	stubMoreProcessingRequired, @function
stubMoreProcessingRequired:
.LFB40:
	.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	.L320
	mov	eax, DWORD PTR MPR1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L319
.L320:
	call	errorFn
	nop
.L319:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	stubMoreProcessingRequired, .-stubMoreProcessingRequired
	.globl	IofCallDriver
	.type	IofCallDriver, @function
IofCallDriver:
.LFB41:
	.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	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -32[rbp], eax
	call	__VERIFIER_nondet_pointer@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L324
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	KbFilter_Complete
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], -1073741802
	jne	.L324
	call	stubMoreProcessingRequired
.L324:
	cmp	DWORD PTR -32[rbp], 0
	je	.L339
	cmp	DWORD PTR -32[rbp], 1
	jne	.L340
	jmp	.L338
.L339:
	nop
.L326:
	mov	QWORD PTR -24[rbp], 0
	jmp	.L330
.L338:
.L328:
	mov	QWORD PTR -24[rbp], -1073741823
	jmp	.L330
.L340:
	nop
.L329:
	mov	QWORD PTR -24[rbp], 259
	nop
.L330:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L331
	mov	eax, DWORD PTR IPC[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L332
.L331:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR1[rip]
	cmp	edx, eax
	jne	.L333
	cmp	QWORD PTR -24[rbp], 259
	jne	.L334
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L332
.L334:
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L332
.L333:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP1[rip]
	cmp	edx, eax
	jne	.L335
	mov	eax, DWORD PTR SKIP2[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L332
.L335:
	call	errorFn
.L332:
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	IofCallDriver, .-IofCallDriver
	.globl	IofCompleteRequest
	.type	IofCompleteRequest, @function
IofCompleteRequest:
.LFB42:
	.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	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -12[rbp], al
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L342
	mov	eax, DWORD PTR DC[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L341
.L342:
	call	errorFn
	nop
.L341:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	IofCompleteRequest, .-IofCompleteRequest
	.globl	KeAcquireSpinLockRaiseToDpc
	.type	KeAcquireSpinLockRaiseToDpc, @function
KeAcquireSpinLockRaiseToDpc:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	KeAcquireSpinLockRaiseToDpc, .-KeAcquireSpinLockRaiseToDpc
	.globl	KeDelayExecutionThread
	.type	KeDelayExecutionThread, @function
KeDelayExecutionThread:
.LFB44:
	.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	ecx, edi
	mov	eax, esi
	mov	QWORD PTR -32[rbp], rdx
	mov	edx, ecx
	mov	BYTE PTR -20[rbp], dl
	mov	BYTE PTR -24[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L352
	nop
.L349:
	mov	eax, 0
	jmp	.L351
.L352:
	nop
.L350:
	mov	rax, -1073741823
.L351:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	KeDelayExecutionThread, .-KeDelayExecutionThread
	.globl	KeInitializeEvent
	.type	KeInitializeEvent, @function
KeInitializeEvent:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	eax, edx
	mov	BYTE PTR -16[rbp], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	KeInitializeEvent, .-KeInitializeEvent
	.globl	KeInitializeSemaphore
	.type	KeInitializeSemaphore, @function
KeInitializeSemaphore:
.LFB46:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	KeInitializeSemaphore, .-KeInitializeSemaphore
	.globl	KeInitializeSpinLock
	.type	KeInitializeSpinLock, @function
KeInitializeSpinLock:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	KeInitializeSpinLock, .-KeInitializeSpinLock
	.globl	KeReleaseSemaphore
	.type	KeReleaseSemaphore, @function
KeReleaseSemaphore:
.LFB48:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, ecx
	mov	BYTE PTR -44[rbp], al
	call	__VERIFIER_nondet_long@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	KeReleaseSemaphore, .-KeReleaseSemaphore
	.globl	KfReleaseSpinLock
	.type	KfReleaseSpinLock, @function
KfReleaseSpinLock:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	BYTE PTR -12[rbp], al
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	KfReleaseSpinLock, .-KfReleaseSpinLock
	.globl	KeSetEvent
	.type	KeSetEvent, @function
KeSetEvent:
.LFB50:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -36[rbp], al
	call	__VERIFIER_nondet_long@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR setEventCalled[rip], 1
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	KeSetEvent, .-KeSetEvent
	.globl	KeWaitForSingleObject
	.type	KeWaitForSingleObject, @function
KeWaitForSingleObject:
.LFB51:
	.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	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	eax, ecx
	mov	QWORD PTR -48[rbp], r8
	mov	BYTE PTR -32[rbp], dl
	mov	BYTE PTR -36[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L374
	mov	eax, DWORD PTR setEventCalled[rip]
	cmp	eax, 1
	jne	.L375
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR setEventCalled[rip], 0
	jmp	.L368
.L374:
	nop
	jmp	.L366
.L375:
	nop
.L366:
	mov	eax, DWORD PTR customIrp[rip]
	cmp	eax, 1
	jne	.L369
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR customIrp[rip], 0
	jmp	.L368
.L369:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L368
	call	errorFn
.L368:
	cmp	DWORD PTR -4[rbp], 0
	jne	.L376
	nop
.L371:
	mov	eax, 0
	jmp	.L373
.L376:
	nop
.L372:
	mov	rax, -1073741823
.L373:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.globl	MmAllocateContiguousMemory
	.type	MmAllocateContiguousMemory, @function
MmAllocateContiguousMemory:
.LFB52:
	.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	QWORD PTR -24[rbp], rdi
	mov	rcx, rdx
	mov	rax, rsi
	mov	rdx, rdi
	mov	rdx, rcx
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], rdx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L386
	cmp	DWORD PTR -12[rbp], 1
	jne	.L387
	jmp	.L385
.L386:
	nop
.L379:
	mov	rax, QWORD PTR -24[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L383
.L385:
.L381:
	mov	eax, 0
	jmp	.L383
.L387:
	nop
.L382:
	mov	eax, 0
.L383:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	MmAllocateContiguousMemory, .-MmAllocateContiguousMemory
	.globl	MmFreeContiguousMemory
	.type	MmFreeContiguousMemory, @function
MmFreeContiguousMemory:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	MmFreeContiguousMemory, .-MmFreeContiguousMemory
	.globl	MmMapLockedPagesSpecifyCache
	.type	MmMapLockedPagesSpecifyCache, @function
MmMapLockedPagesSpecifyCache:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, esi
	mov	DWORD PTR -16[rbp], edx
	mov	QWORD PTR -24[rbp], rcx
	mov	QWORD PTR -32[rbp], r8
	mov	DWORD PTR -36[rbp], r9d
	mov	BYTE PTR -12[rbp], al
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	MmMapLockedPagesSpecifyCache, .-MmMapLockedPagesSpecifyCache
	.globl	MmPageEntireDriver
	.type	MmPageEntireDriver, @function
MmPageEntireDriver:
.LFB55:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	MmPageEntireDriver, .-MmPageEntireDriver
	.globl	MmResetDriverPaging
	.type	MmResetDriverPaging, @function
MmResetDriverPaging:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	MmResetDriverPaging, .-MmResetDriverPaging
	.globl	MmUnlockPages
	.type	MmUnlockPages, @function
MmUnlockPages:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	MmUnlockPages, .-MmUnlockPages
	.globl	ObReferenceObjectByHandle
	.type	ObReferenceObjectByHandle, @function
ObReferenceObjectByHandle:
.LFB58:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	eax, ecx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	mov	BYTE PTR -44[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L403
	nop
.L400:
	mov	eax, 0
	jmp	.L402
.L403:
	nop
.L401:
	mov	rax, -1073741823
.L402:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	ObReferenceObjectByHandle, .-ObReferenceObjectByHandle
	.globl	ObfDereferenceObject
	.type	ObfDereferenceObject, @function
ObfDereferenceObject:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	ObfDereferenceObject, .-ObfDereferenceObject
	.globl	PoCallDriver
	.type	PoCallDriver, @function
PoCallDriver:
.LFB60:
	.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	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -32[rbp], eax
	call	__VERIFIER_nondet_pointer@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L407
	mov	rdx, QWORD PTR -16[rbp]
	mov	rcx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	KbFilter_Complete
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], -1073741802
	jne	.L407
	call	stubMoreProcessingRequired
.L407:
	cmp	DWORD PTR -32[rbp], 0
	je	.L422
	cmp	DWORD PTR -32[rbp], 1
	jne	.L423
	jmp	.L421
.L422:
	nop
.L409:
	mov	QWORD PTR -24[rbp], 0
	jmp	.L413
.L421:
.L411:
	mov	QWORD PTR -24[rbp], -1073741823
	jmp	.L413
.L423:
	nop
.L412:
	mov	QWORD PTR -24[rbp], 259
	nop
.L413:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L414
	mov	eax, DWORD PTR IPC[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L415
.L414:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR1[rip]
	cmp	edx, eax
	jne	.L416
	cmp	QWORD PTR -24[rbp], 259
	jne	.L417
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L415
.L417:
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L415
.L416:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP1[rip]
	cmp	edx, eax
	jne	.L418
	mov	eax, DWORD PTR SKIP2[rip]
	mov	DWORD PTR s[rip], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L415
.L418:
	call	errorFn
.L415:
	mov	rax, QWORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	PoCallDriver, .-PoCallDriver
	.globl	PoStartNextPowerIrp
	.type	PoStartNextPowerIrp, @function
PoStartNextPowerIrp:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	PoStartNextPowerIrp, .-PoStartNextPowerIrp
	.globl	PsCreateSystemThread
	.type	PsCreateSystemThread, @function
PsCreateSystemThread:
.LFB62:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	mov	QWORD PTR -64[rbp], r9
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L431
	nop
.L428:
	mov	eax, 0
	jmp	.L430
.L431:
	nop
.L429:
	mov	rax, -1073741823
.L430:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	PsCreateSystemThread, .-PsCreateSystemThread
	.globl	PsTerminateSystemThread
	.type	PsTerminateSystemThread, @function
PsTerminateSystemThread:
.LFB63:
	.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	QWORD PTR -24[rbp], rdi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L437
	nop
.L434:
	mov	eax, 0
	jmp	.L436
.L437:
	nop
.L435:
	mov	rax, -1073741823
.L436:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	PsTerminateSystemThread, .-PsTerminateSystemThread
	.globl	RtlAnsiStringToUnicodeString
	.type	RtlAnsiStringToUnicodeString, @function
RtlAnsiStringToUnicodeString:
.LFB64:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, edx
	mov	BYTE PTR -36[rbp], al
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L443
	nop
.L440:
	mov	eax, 0
	jmp	.L442
.L443:
	nop
.L441:
	mov	rax, -1073741823
.L442:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	RtlAnsiStringToUnicodeString, .-RtlAnsiStringToUnicodeString
	.globl	RtlCompareMemory
	.type	RtlCompareMemory, @function
RtlCompareMemory:
.LFB65:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	call	__VERIFIER_nondet_long@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	RtlCompareMemory, .-RtlCompareMemory
	.globl	RtlCopyUnicodeString
	.type	RtlCopyUnicodeString, @function
RtlCopyUnicodeString:
.LFB66:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	RtlCopyUnicodeString, .-RtlCopyUnicodeString
	.globl	RtlDeleteRegistryValue
	.type	RtlDeleteRegistryValue, @function
RtlDeleteRegistryValue:
.LFB67:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L453
	nop
.L450:
	mov	eax, 0
	jmp	.L452
.L453:
	nop
.L451:
	mov	rax, -1073741823
.L452:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	RtlDeleteRegistryValue, .-RtlDeleteRegistryValue
	.globl	RtlFreeUnicodeString
	.type	RtlFreeUnicodeString, @function
RtlFreeUnicodeString:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	RtlFreeUnicodeString, .-RtlFreeUnicodeString
	.globl	RtlInitString
	.type	RtlInitString, @function
RtlInitString:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	RtlInitString, .-RtlInitString
	.globl	RtlInitUnicodeString
	.type	RtlInitUnicodeString, @function
RtlInitUnicodeString:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	RtlInitUnicodeString, .-RtlInitUnicodeString
	.globl	RtlQueryRegistryValues
	.type	RtlQueryRegistryValues, @function
RtlQueryRegistryValues:
.LFB71:
	.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	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	mov	QWORD PTR -48[rbp], rcx
	mov	QWORD PTR -56[rbp], r8
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L465
	nop
.L462:
	mov	eax, 0
	jmp	.L464
.L465:
	nop
.L463:
	mov	rax, -1073741823
.L464:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	RtlQueryRegistryValues, .-RtlQueryRegistryValues
	.globl	ZwClose
	.type	ZwClose, @function
ZwClose:
.LFB72:
	.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	QWORD PTR -24[rbp], rdi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L471
	nop
.L468:
	mov	eax, 0
	jmp	.L470
.L471:
	nop
.L469:
	mov	rax, -1073741823
.L470:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	ZwClose, .-ZwClose
	.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	"109007.c"
	.text
	.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
	.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	_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	DriverEntry
	.syntax unified
	.arm
	.fpu softvfp
	.type	DriverEntry, %function
DriverEntry:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	bl	__VERIFIER_nondet_long
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #27
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	__VERIFIER_assume
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-8]
	add	r2, r2, #14
	ldr	r1, .L9
	str	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-16]
	ldr	r2, .L9+4
	str	r2, [r3, #56]
	ldr	r3, [fp, #-16]
	ldr	r2, .L9+4
	str	r2, [r3, #64]
	ldr	r3, [fp, #-16]
	ldr	r2, .L9+8
	str	r2, [r3, #164]
	ldr	r3, [fp, #-16]
	ldr	r2, .L9+12
	str	r2, [r3, #144]
	ldr	r3, [fp, #-16]
	ldr	r2, .L9+16
	str	r2, [r3, #116]
	ldr	r3, [fp, #-16]
	ldr	r2, .L9+20
	str	r2, [r3, #52]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #24]
	ldr	r2, .L9+24
	str	r2, [r3, #4]
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L10:
	.align	2
.L9:
	.word	KbFilter_DispatchPassThrough
	.word	KbFilter_CreateClose
	.word	KbFilter_PnP
	.word	KbFilter_Power
	.word	KbFilter_InternIoCtl
	.word	KbFilter_Unload
	.word	KbFilter_AddDevice
	.size	DriverEntry, .-DriverEntry
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	KbFilter_AddDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_AddDevice, %function
KbFilter_AddDevice:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	ldr	r3, .L16
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r3, fp, #20
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #11
	mov	r2, #0
	mov	r1, #56
	ldr	r0, [fp, #-24]
	bl	IoCreateDevice
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L12
	ldr	r3, [fp, #-16]
	b	.L14
.L12:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #40]
	mov	r2, #56
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	IoAttachDeviceToDeviceStack
	mov	r2, r0
	ldr	r3, [fp, #-12]
	str	r2, [r3, #8]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #4]
	ldr	r3, [fp, #-12]
	mov	r2, #1
	str	r2, [r3, #48]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #53]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #54]
	ldr	r3, [fp, #-12]
	mov	r2, #0
	strb	r2, [r3, #52]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #28]
	ldr	r2, [fp, #-20]
	orr	r3, r3, #8192
	orr	r3, r3, #4
	str	r3, [r2, #28]
	ldr	r3, [fp, #-20]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-20]
	bic	r2, r2, #128
	str	r2, [r3, #28]
	ldr	r3, [fp, #-16]
.L14:
	ldr	r2, .L16
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L15
	bl	__stack_chk_fail
.L15:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L17:
	.align	2
.L16:
	.word	.LC0
	.size	KbFilter_AddDevice, .-KbFilter_AddDevice
	.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]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #96]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-28]
	ldr	r3, .L33
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L31
	ldr	r3, [fp, #-24]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #2
	bne	.L32
	b	.L30
.L31:
	nop
.L22:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	bne	.L26
	ldr	r3, .L33+4
	str	r3, [fp, #-28]
	b	.L25
.L26:
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	mov	r0, r3
	bl	InterlockedIncrement
	str	r0, [fp, #-12]
	b	.L25
.L30:
.L24:
	ldr	r3, [fp, #-20]
	add	r3, r3, #12
	mov	r0, r3
	bl	InterlockedDecrement
	str	r0, [fp, #-16]
	b	.L25
.L32:
	nop
.L25:
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #24]
	ldr	r2, .L33
	ldr	r3, [fp, #-28]
	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}
.L34:
	.align	2
.L33:
	.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 = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #96]
	str	r3, [fp, #-12]
	ldr	r3, .L39
	ldr	r2, [r3]
	ldr	r3, .L39+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L36
	ldr	r3, .L39+8
	ldr	r3, [r3]
	ldr	r2, .L39
	str	r3, [r2]
	b	.L37
.L36:
	bl	errorFn
.L37:
	ldr	r3, [fp, #-20]
	ldrb	r3, [r3, #35]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-20]
	strb	r2, [r3, #35]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #96]
	add	r2, r3, #36
	ldr	r3, [fp, #-20]
	str	r2, [r3, #96]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-20]
	mov	r0, r3
	bl	IofCallDriver
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L40:
	.align	2
.L39:
	.word	s
	.word	NP
	.word	SKIP1
	.size	KbFilter_DispatchPassThrough, .-KbFilter_DispatchPassThrough
	.align	2
	.global	KbFilter_InternIoCtl
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_InternIoCtl, %function
KbFilter_InternIoCtl:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	mov	r2, #0
	str	r2, [r3, #28]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #96]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80
	cmp	r3, r2
	beq	.L71
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80+4
	cmp	r3, r2
	beq	.L72
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80+8
	cmp	r3, r2
	beq	.L73
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	cmp	r3, #720896
	beq	.L74
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80+12
	cmp	r3, r2
	beq	.L75
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80+16
	cmp	r3, r2
	beq	.L76
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80+20
	cmp	r3, r2
	beq	.L77
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80+24
	cmp	r3, r2
	beq	.L78
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #12]
	ldr	r2, .L80+28
	cmp	r3, r2
	bne	.L79
	b	.L65
.L71:
	nop
.L43:
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L56
	ldr	r3, .L80+32
	str	r3, [fp, #-28]
	b	.L55
.L56:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	cmp	r3, #7
	bhi	.L57
	mov	r3, #-1073741811
	str	r3, [fp, #-28]
	b	.L55
.L57:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-12]
	add	r3, r3, #16
	ldm	r2, {r0, r1}
	stm	r3, {r0, r1}
	ldr	r3, [fp, #-24]
	ldr	r2, [r3]
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	ldr	r2, .L80+36
	str	r2, [r3, #4]
	b	.L55
.L72:
	nop
.L45:
	mov	r3, #-1073741822
	str	r3, [fp, #-28]
	b	.L55
.L73:
	nop
.L47:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	cmp	r3, #23
	bhi	.L58
	mov	r3, #-1073741811
	str	r3, [fp, #-28]
	b	.L55
.L58:
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #24]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L59
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #28]
.L59:
	ldr	r3, [fp, #-16]
	ldr	r2, .L80+40
	str	r2, [r3, #4]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L60
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #32]
.L60:
	ldr	r3, [fp, #-16]
	ldr	r2, .L80+44
	str	r2, [r3, #8]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #36]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #40]
	ldr	r3, [fp, #-16]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-24]
	str	r2, [r3, #44]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L55
.L49:
.L61:
.L62:
.L63:
.L64:
.L74:
	nop
	b	.L55
.L75:
	nop
	b	.L55
.L76:
	nop
	b	.L55
.L77:
	nop
	b	.L55
.L78:
	nop
.L65:
	b	.L55
.L79:
	nop
.L55:
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bge	.L66
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-28]
	str	r2, [r3, #24]
	ldr	r2, .L80+48
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	IofCompleteRequest
	ldr	r3, [fp, #-28]
	b	.L67
.L66:
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	KbFilter_DispatchPassThrough
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
.L67:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L81:
	.align	2
.L80:
	.word	721411
	.word	721923
	.word	737219
	.word	721024
	.word	720960
	.word	720904
	.word	720928
	.word	720900
	.word	-1073741757
	.word	KbFilter_ServiceCallback
	.word	KbFilter_InitializationRoutine
	.word	KbFilter_IsrHook
	.word	myStatus
	.size	KbFilter_InternIoCtl, .-KbFilter_InternIoCtl
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	KbFilter_PnP
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_PnP, %function
KbFilter_PnP:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, .L163
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #96]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L143
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #23
	beq	.L144
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #2
	beq	.L145
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #1
	beq	.L146
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #5
	beq	.L147
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #3
	beq	.L148
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #6
	beq	.L149
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #13
	beq	.L150
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #4
	beq	.L151
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #7
	beq	.L152
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #8
	beq	.L153
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #9
	beq	.L154
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #12
	beq	.L155
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #10
	beq	.L156
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #11
	beq	.L157
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #15
	beq	.L158
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #16
	beq	.L159
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #17
	beq	.L160
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #18
	beq	.L161
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #19
	beq	.L162
	ldr	r3, [fp, #-40]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #20
	b	.L135
.L143:
	nop
.L84:
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #96]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #96]
	sub	r3, r3, #36
	str	r3, [fp, #-32]
	mov	r2, #28
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	memcpy
	ldr	r3, [fp, #-32]
	mov	r2, #0
	strb	r2, [r3, #3]
	ldr	r3, .L163+4
	ldr	r2, [r3]
	ldr	r3, .L163+8
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L108
	bl	errorFn
	b	.L109
.L108:
	ldr	r3, .L163+12
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L110
	bl	errorFn
	b	.L109
.L110:
	ldr	r3, .L163+12
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L163+16
	ldr	r2, .L163+20
	str	r2, [r3]
.L109:
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #96]
	sub	r3, r3, #36
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r2, .L163+20
	str	r2, [r3, #28]
	ldr	r3, [fp, #-28]
	sub	r2, fp, #24
	str	r2, [r3, #32]
	ldr	r3, [fp, #-28]
	mov	r2, #0
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-28]
	mov	r2, #64
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	mvn	r3, r3, lsl #25
	mvn	r3, r3, lsr #25
	and	r2, r3, #255
	ldr	r3, [fp, #-28]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-28]
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	orr	r3, r3, #32
	and	r2, r3, #255
	ldr	r3, [fp, #-28]
	strb	r2, [r3, #3]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-60]
	mov	r0, r3
	bl	IofCallDriver
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r2, .L163+24
	cmp	r3, r2
	bne	.L111
	sub	r0, fp, #24
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	mov	r1, #0
	bl	KeWaitForSingleObject
.L111:
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	blt	.L112
	ldr	r3, .L163+28
	ldr	r3, [r3]
	cmp	r3, #0
	blt	.L112
	ldr	r3, [fp, #-44]
	mov	r2, #1
	strb	r2, [r3, #52]
	ldr	r3, [fp, #-44]
	mov	r2, #0
	strb	r2, [r3, #54]
	ldr	r3, [fp, #-44]
	mov	r2, #0
	strb	r2, [r3, #53]
.L112:
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-48]
	str	r2, [r3, #24]
	ldr	r2, .L163+28
	ldr	r3, [fp, #-48]
	str	r3, [r2]
	ldr	r3, [fp, #-60]
	mov	r2, #0
	str	r2, [r3, #28]
	mov	r1, #0
	ldr	r0, [fp, #-60]
	bl	IofCompleteRequest
	b	.L113
.L144:
	nop
.L86:
	ldr	r3, [fp, #-44]
	mov	r2, #1
	strb	r2, [r3, #53]
	ldr	r3, .L163+4
	ldr	r2, [r3]
	ldr	r3, .L163+8
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L114
	ldr	r3, .L163+32
	ldr	r3, [r3]
	ldr	r2, .L163+4
	str	r3, [r2]
	b	.L115
.L114:
	bl	errorFn
.L115:
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3, #35]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-60]
	strb	r2, [r3, #35]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #96]
	add	r2, r3, #36
	ldr	r3, [fp, #-60]
	str	r2, [r3, #96]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-60]
	mov	r0, r3
	bl	IofCallDriver
	str	r0, [fp, #-48]
	b	.L113
.L145:
	nop
.L88:
	ldr	r3, [fp, #-44]
	mov	r2, #1
	strb	r2, [r3, #54]
	ldr	r3, .L163+4
	ldr	r2, [r3]
	ldr	r3, .L163+8
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L116
	ldr	r3, .L163+32
	ldr	r3, [r3]
	ldr	r2, .L163+4
	str	r3, [r2]
	b	.L117
.L116:
	bl	errorFn
.L117:
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3, #35]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-60]
	strb	r2, [r3, #35]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #96]
	add	r2, r3, #36
	ldr	r3, [fp, #-60]
	str	r2, [r3, #96]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-60]
	mov	r0, r3
	bl	IofCallDriver
	mov	r3, #0
	str	r3, [fp, #-48]
	b	.L113
.L90:
.L118:
.L119:
.L120:
.L121:
.L122:
.L123:
.L124:
.L125:
.L126:
.L127:
.L128:
.L129:
.L130:
.L131:
.L132:
.L133:
.L134:
.L146:
	nop
	b	.L135
.L147:
	nop
	b	.L135
.L148:
	nop
	b	.L135
.L149:
	nop
	b	.L135
.L150:
	nop
	b	.L135
.L151:
	nop
	b	.L135
.L152:
	nop
	b	.L135
.L153:
	nop
	b	.L135
.L154:
	nop
	b	.L135
.L155:
	nop
	b	.L135
.L156:
	nop
	b	.L135
.L157:
	nop
	b	.L135
.L158:
	nop
	b	.L135
.L159:
	nop
	b	.L135
.L160:
	nop
	b	.L135
.L161:
	nop
	b	.L135
.L162:
	nop
.L135:
	ldr	r3, .L163+4
	ldr	r2, [r3]
	ldr	r3, .L163+8
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L136
	ldr	r3, .L163+32
	ldr	r3, [r3]
	ldr	r2, .L163+4
	str	r3, [r2]
	b	.L137
.L136:
	bl	errorFn
.L137:
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3, #35]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-60]
	strb	r2, [r3, #35]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3, #96]
	add	r2, r3, #36
	ldr	r3, [fp, #-60]
	str	r2, [r3, #96]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-60]
	mov	r0, r3
	bl	IofCallDriver
	str	r0, [fp, #-48]
	nop
.L113:
	ldr	r3, [fp, #-48]
	ldr	r2, .L163
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L139
	bl	__stack_chk_fail
.L139:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L164:
	.align	2
.L163:
	.word	.LC1
	.word	s
	.word	NP
	.word	compRegistered
	.word	compFptr
	.word	KbFilter_Complete
	.word	259
	.word	myStatus
	.word	SKIP1
	.size	KbFilter_PnP, .-KbFilter_PnP
	.align	2
	.global	KbFilter_Power
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_Power, %function
KbFilter_Power:
	@ 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]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #96]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #2
	beq	.L180
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #1
	beq	.L181
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L182
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #3
	b	.L174
.L180:
	nop
.L167:
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bne	.L183
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-20]
	str	r2, [r3, #48]
	b	.L174
.L169:
.L172:
.L173:
.L181:
	nop
	b	.L174
.L182:
	nop
	b	.L174
.L183:
	nop
.L174:
	nop
.L175:
	ldr	r3, .L184
	ldr	r2, [r3]
	ldr	r3, .L184+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L176
	ldr	r3, .L184+8
	ldr	r3, [r3]
	ldr	r2, .L184
	str	r3, [r2]
	b	.L177
.L176:
	bl	errorFn
.L177:
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3, #35]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, [fp, #-36]
	strb	r2, [r3, #35]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3, #96]
	add	r2, r3, #36
	ldr	r3, [fp, #-36]
	str	r2, [r3, #96]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #8]
	ldr	r1, [fp, #-36]
	mov	r0, r3
	bl	PoCallDriver
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L185:
	.align	2
.L184:
	.word	s
	.word	NP
	.word	SKIP1
	.size	KbFilter_Power, .-KbFilter_Power
	.align	2
	.global	KbFilter_InitializationRoutine
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_InitializationRoutine, %function
KbFilter_InitializationRoutine:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #36
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #28]
	cmp	r3, #0
	beq	.L187
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #28]
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #24]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-28]
	blx	r4
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L187
	ldr	r3, [fp, #-20]
	b	.L188
.L187:
	ldr	r3, [fp, #4]
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, [fp, #-20]
.L188:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	KbFilter_InitializationRoutine, .-KbFilter_InitializationRoutine
	.align	2
	.global	KbFilter_IsrHook
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_IsrHook, %function
KbFilter_IsrHook:
	@ args = 12, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	strb	r3, [fp, #-33]
	mov	r3, #1
	strb	r3, [fp, #-17]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #32]
	cmp	r3, #0
	beq	.L190
	ldr	r3, [fp, #-16]
	ldr	r4, [r3, #32]
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #24]
	ldrb	r2, [fp, #-33]	@ zero_extendqisi2
	ldr	r3, [fp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldr	r3, [fp, #4]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-28]
	blx	r4
	mov	r3, r0
	strb	r3, [fp, #-17]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L191
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	b	.L192
.L191:
	ldr	r3, [fp, #8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L190
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
	b	.L192
.L190:
	ldr	r3, [fp, #8]
	mov	r2, #1
	strb	r2, [r3]
	ldrb	r3, [fp, #-17]	@ zero_extendqisi2
.L192:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	KbFilter_IsrHook, .-KbFilter_IsrHook
	.align	2
	.global	KbFilter_ServiceCallback
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_ServiceCallback, %function
KbFilter_ServiceCallback:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #20]
	mov	r4, r3
	ldr	r3, [fp, #-16]
	ldr	r0, [r3, #16]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-28]
	blx	r4
	nop
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	KbFilter_ServiceCallback, .-KbFilter_ServiceCallback
	.align	2
	.global	KbFilter_Unload
	.syntax unified
	.arm
	.fpu softvfp
	.type	KbFilter_Unload, %function
KbFilter_Unload:
	@ 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	KbFilter_Unload, .-KbFilter_Unload
	.comm	pirp,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, .L199
	ldr	r3, [r3]
	ldr	r2, .L199+4
	str	r3, [r2]
	ldr	r3, .L199+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L199+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L199+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L199+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L199+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L199+28
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L200:
	.align	2
.L199:
	.word	NP
	.word	s
	.word	pended
	.word	compFptr
	.word	compRegistered
	.word	lowerDriverReturn
	.word	setEventCalled
	.word	customIrp
	.size	stub_driver_init, .-stub_driver_init
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 704
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #704
	ldr	r3, .L249
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-704]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-700]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-696]
	sub	r3, fp, #640
	str	r3, [fp, #-544]
	sub	r3, fp, #684
	str	r3, [fp, #-152]
	bl	__VERIFIER_nondet_uchar
	mov	r3, r0
	strb	r3, [fp, #-400]
	bl	__VERIFIER_nondet_uchar
	mov	r3, r0
	strb	r3, [fp, #-364]
	bl	__VERIFIER_nondet_uchar
	mov	r3, r0
	strb	r3, [fp, #-328]
	bl	__VERIFIER_nondet_uchar
	mov	r3, r0
	strb	r3, [fp, #-399]
	bl	__VERIFIER_nondet_uchar
	mov	r3, r0
	strb	r3, [fp, #-363]
	bl	__VERIFIER_nondet_uchar
	mov	r3, r0
	strb	r3, [fp, #-327]
	sub	r3, fp, #664
	str	r3, [fp, #-384]
	sub	r3, fp, #664
	str	r3, [fp, #-348]
	sub	r3, fp, #664
	str	r3, [fp, #-312]
	bl	__VERIFIER_nondet_ulong
	mov	r3, r0
	str	r3, [fp, #-392]
	bl	__VERIFIER_nondet_ulong
	mov	r3, r0
	str	r3, [fp, #-356]
	bl	__VERIFIER_nondet_ulong
	mov	r3, r0
	str	r3, [fp, #-320]
	bl	__VERIFIER_nondet_ulong
	mov	r3, r0
	str	r3, [fp, #-388]
	bl	__VERIFIER_nondet_ulong
	mov	r3, r0
	str	r3, [fp, #-352]
	bl	__VERIFIER_nondet_ulong
	mov	r3, r0
	str	r3, [fp, #-316]
	sub	r3, fp, #400
	add	r3, r3, #36
	str	r3, [fp, #-196]
	ldr	r2, .L249+4
	sub	r3, fp, #292
	str	r3, [r2]
	bl	_BLAST_init
	sub	r2, fp, #692
	sub	r3, fp, #176
	mov	r1, r2
	mov	r0, r3
	bl	DriverEntry
	str	r0, [fp, #-708]
	ldr	r3, [fp, #-708]
	cmp	r3, #0
	blt	.L202
	ldr	r3, .L249+8
	ldr	r3, [r3]
	ldr	r2, .L249+12
	str	r3, [r2]
	ldr	r3, .L249+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L249+16
	ldr	r3, [r3]
	ldr	r2, .L249+20
	str	r3, [r2]
	ldr	r3, .L249+20
	ldr	r3, [r3]
	ldr	r2, .L249+24
	str	r3, [r2]
	ldr	r3, .L249+24
	ldr	r3, [r3]
	ldr	r2, .L249+28
	str	r3, [r2]
	ldr	r3, .L249+28
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L249+32
	str	r2, [r3]
	ldr	r3, .L249+32
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L249+36
	str	r2, [r3]
	ldr	r3, .L249+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3, #24]
	ldr	r3, .L249+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-696]
	cmp	r3, #0
	bne	.L203
	ldr	r3, .L249+4
	ldr	r3, [r3]
	ldr	r2, .L249+44
	str	r2, [r3, #24]
	ldr	r3, .L249+40
	ldr	r2, .L249+44
	str	r2, [r3]
.L203:
	sub	r2, fp, #584
	sub	r3, fp, #176
	mov	r1, r2
	mov	r0, r3
	bl	KbFilter_AddDevice
	str	r0, [fp, #-708]
	bl	stub_driver_init
	ldr	r3, [fp, #-708]
	cmp	r3, #0
	bge	.L204
	mvn	r3, #0
	b	.L229
.L204:
	ldr	r3, [fp, #-700]
	cmp	r3, #0
	beq	.L237
	ldr	r3, [fp, #-700]
	cmp	r3, #1
	beq	.L238
	ldr	r3, [fp, #-700]
	cmp	r3, #2
	beq	.L239
	ldr	r3, [fp, #-700]
	cmp	r3, #3
	beq	.L240
	ldr	r3, [fp, #-700]
	cmp	r3, #4
	beq	.L241
	ldr	r3, [fp, #-700]
	cmp	r3, #8
	bne	.L242
	b	.L236
.L237:
	nop
.L207:
	ldr	r3, .L249+4
	ldr	r2, [r3]
	sub	r3, fp, #584
	mov	r1, r2
	mov	r0, r3
	bl	KbFilter_CreateClose
	str	r0, [fp, #-708]
	b	.L202
.L238:
	nop
.L209:
	ldr	r3, .L249+4
	ldr	r2, [r3]
	sub	r3, fp, #584
	mov	r1, r2
	mov	r0, r3
	bl	KbFilter_CreateClose
	str	r0, [fp, #-708]
	b	.L202
.L239:
	nop
.L211:
	ldr	r3, .L249+4
	ldr	r2, [r3]
	sub	r3, fp, #584
	mov	r1, r2
	mov	r0, r3
	bl	KbFilter_IoCtl
	str	r0, [fp, #-708]
	b	.L202
.L240:
	nop
.L213:
	ldr	r3, .L249+4
	ldr	r2, [r3]
	sub	r3, fp, #584
	mov	r1, r2
	mov	r0, r3
	bl	KbFilter_PnP
	str	r0, [fp, #-708]
	b	.L202
.L241:
	nop
.L215:
	ldr	r3, .L249+4
	ldr	r2, [r3]
	sub	r3, fp, #584
	mov	r1, r2
	mov	r0, r3
	bl	KbFilter_Power
	str	r0, [fp, #-708]
	b	.L202
.L236:
.L217:
	ldr	r3, .L249+4
	ldr	r2, [r3]
	sub	r3, fp, #584
	mov	r1, r2
	mov	r0, r3
	bl	KbFilter_InternIoCtl
	str	r0, [fp, #-708]
	b	.L202
.L242:
	nop
.L218:
	mvn	r3, #0
	b	.L229
.L219:
.L202:
	ldr	r3, .L249+36
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L243
	ldr	r3, .L249+12
	ldr	r2, [r3]
	ldr	r3, .L249+8
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L244
	ldr	r3, .L249+8
	ldr	r3, [r3]
	ldr	r2, .L249+12
	str	r3, [r2]
	b	.L222
.L243:
	nop
	b	.L220
.L244:
	nop
.L220:
	ldr	r3, .L249+36
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L245
	ldr	r3, .L249+12
	ldr	r2, [r3]
	ldr	r3, .L249+48
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L246
	ldr	r3, .L249+48
	ldr	r3, [r3]
	ldr	r2, .L249+12
	str	r3, [r2]
	b	.L222
.L245:
	nop
	b	.L223
.L246:
	nop
.L223:
	ldr	r3, .L249+12
	ldr	r2, [r3]
	ldr	r3, .L249+52
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L222
	ldr	r3, [fp, #-708]
	cmn	r3, #1
	beq	.L222
	ldr	r3, .L249+12
	ldr	r2, [r3]
	ldr	r3, .L249+56
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L247
	ldr	r3, .L249+12
	ldr	r2, [r3]
	ldr	r3, .L249+60
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L248
	ldr	r3, .L249+12
	ldr	r2, [r3]
	ldr	r3, .L249+64
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L222
	b	.L225
.L247:
	nop
	b	.L225
.L248:
	nop
.L225:
	ldr	r3, .L249+36
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L227
	ldr	r3, [fp, #-708]
	ldr	r2, .L249+68
	cmp	r3, r2
	beq	.L222
	bl	errorFn
	b	.L222
.L227:
	ldr	r3, .L249+12
	ldr	r2, [r3]
	ldr	r3, .L249+64
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L222
	ldr	r3, [fp, #-708]
	ldr	r2, .L249+68
	cmp	r3, r2
	bne	.L222
	bl	errorFn
.L222:
	ldr	r3, [fp, #-708]
.L229:
	ldr	r2, .L249
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L230
	bl	__stack_chk_fail
.L230:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L250:
	.align	2
.L249:
	.word	.LC2
	.word	pirp
	.word	NP
	.word	s
	.word	customIrp
	.word	setEventCalled
	.word	lowerDriverReturn
	.word	compRegistered
	.word	compFptr
	.word	pended
	.word	myStatus
	.word	-1073741637
	.word	MPR3
	.word	UNLOADED
	.word	SKIP2
	.word	IPC
	.word	DC
	.word	259
	.size	main, .-main
	.comm	_SLAM_alloc_dummy,1,1
	.align	2
	.global	ExAcquireFastMutex
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExAcquireFastMutex, %function
ExAcquireFastMutex:
	@ 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	ExAcquireFastMutex, .-ExAcquireFastMutex
	.align	2
	.global	ExReleaseFastMutex
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExReleaseFastMutex, %function
ExReleaseFastMutex:
	@ 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	ExReleaseFastMutex, .-ExReleaseFastMutex
	.align	2
	.global	ExAllocatePoolWithTag
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExAllocatePoolWithTag, %function
ExAllocatePoolWithTag:
	@ 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	r0, [fp, #-20]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ExAllocatePoolWithTag, .-ExAllocatePoolWithTag
	.align	2
	.global	ExFreePool
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExFreePool, %function
ExFreePool:
	@ 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	ExFreePool, .-ExFreePool
	.align	2
	.global	ExfInterlockedInsertHeadList
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExfInterlockedInsertHeadList, %function
ExfInterlockedInsertHeadList:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ExfInterlockedInsertHeadList, .-ExfInterlockedInsertHeadList
	.align	2
	.global	ExfInterlockedInsertTailList
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExfInterlockedInsertTailList, %function
ExfInterlockedInsertTailList:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ExfInterlockedInsertTailList, .-ExfInterlockedInsertTailList
	.align	2
	.global	ExfInterlockedRemoveHeadList
	.syntax unified
	.arm
	.fpu softvfp
	.type	ExfInterlockedRemoveHeadList, %function
ExfInterlockedRemoveHeadList:
	@ 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]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	ExfInterlockedRemoveHeadList, .-ExfInterlockedRemoveHeadList
	.align	2
	.global	IoAllocateMdl
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoAllocateMdl, %function
IoAllocateMdl:
	@ 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]
	mov	r1, r2
	mov	r2, r3
	mov	r3, r1
	strb	r3, [fp, #-21]
	mov	r3, r2
	strb	r3, [fp, #-22]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L270
	nop
.L267:
	mov	r0, #28
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L269
.L270:
	nop
.L268:
	mov	r3, #0
.L269:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoAllocateMdl, .-IoAllocateMdl
	.align	2
	.global	IoAttachDeviceToDeviceStack
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoAttachDeviceToDeviceStack, %function
IoAttachDeviceToDeviceStack:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L276
	nop
.L273:
	ldr	r3, [fp, #-20]
	b	.L275
.L276:
	nop
.L274:
	mov	r3, #0
.L275:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoAttachDeviceToDeviceStack, .-IoAttachDeviceToDeviceStack
	.align	2
	.global	IoBuildAsynchronousFsdRequest
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoBuildAsynchronousFsdRequest, %function
IoBuildAsynchronousFsdRequest:
	@ args = 8, 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, .L283
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L282
	nop
.L279:
	mov	r0, #112
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L281
.L282:
	nop
.L280:
	mov	r3, #0
.L281:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L284:
	.align	2
.L283:
	.word	customIrp
	.size	IoBuildAsynchronousFsdRequest, .-IoBuildAsynchronousFsdRequest
	.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, .L291
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L290
	nop
.L287:
	mov	r0, #112
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L289
.L290:
	nop
.L288:
	mov	r3, #0
.L289:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L292:
	.align	2
.L291:
	.word	customIrp
	.size	IoBuildDeviceIoControlRequest, .-IoBuildDeviceIoControlRequest
	.align	2
	.global	IoCreateDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoCreateDevice, %function
IoCreateDevice:
	@ args = 12, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L298
	nop
.L295:
	mov	r0, #184
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #12]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #12]
	ldr	r4, [r3]
	ldr	r0, [fp, #-28]
	bl	malloc
	mov	r3, r0
	str	r3, [r4, #40]
	mov	r3, #0
	b	.L297
.L298:
	nop
.L296:
	mov	r3, #-1073741823
.L297:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	IoCreateDevice, .-IoCreateDevice
	.align	2
	.global	IoCreateSymbolicLink
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoCreateSymbolicLink, %function
IoCreateSymbolicLink:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L304
	nop
.L301:
	mov	r3, #0
	b	.L303
.L304:
	nop
.L302:
	mov	r3, #-1073741823
.L303:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoCreateSymbolicLink, .-IoCreateSymbolicLink
	.align	2
	.global	IoDeleteDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoDeleteDevice, %function
IoDeleteDevice:
	@ 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	IoDeleteDevice, .-IoDeleteDevice
	.align	2
	.global	IoDeleteSymbolicLink
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoDeleteSymbolicLink, %function
IoDeleteSymbolicLink:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L312
	nop
.L309:
	mov	r3, #0
	b	.L311
.L312:
	nop
.L310:
	mov	r3, #-1073741823
.L311:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoDeleteSymbolicLink, .-IoDeleteSymbolicLink
	.align	2
	.global	IoDetachDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoDetachDevice, %function
IoDetachDevice:
	@ 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	IoDetachDevice, .-IoDetachDevice
	.align	2
	.global	IoFreeIrp
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoFreeIrp, %function
IoFreeIrp:
	@ 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	IoFreeIrp, .-IoFreeIrp
	.align	2
	.global	IoFreeMdl
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoFreeMdl, %function
IoFreeMdl:
	@ 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	IoFreeMdl, .-IoFreeMdl
	.align	2
	.global	IoGetConfigurationInformation
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoGetConfigurationInformation, %function
IoGetConfigurationInformation:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r0, #40
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoGetConfigurationInformation, .-IoGetConfigurationInformation
	.align	2
	.global	IoQueryDeviceDescription
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoQueryDeviceDescription, %function
IoQueryDeviceDescription:
	@ args = 16, 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, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L326
	nop
.L323:
	mov	r3, #0
	b	.L325
.L326:
	nop
.L324:
	mov	r3, #-1073741823
.L325:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoQueryDeviceDescription, .-IoQueryDeviceDescription
	.align	2
	.global	IoRegisterDeviceInterface
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoRegisterDeviceInterface, %function
IoRegisterDeviceInterface:
	@ 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]
	str	r3, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L332
	nop
.L329:
	mov	r3, #0
	b	.L331
.L332:
	nop
.L330:
	mov	r3, #-1073741808
.L331:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoRegisterDeviceInterface, .-IoRegisterDeviceInterface
	.align	2
	.global	IoReleaseCancelSpinLock
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoReleaseCancelSpinLock, %function
IoReleaseCancelSpinLock:
	@ 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
	mov	r3, r0
	strb	r3, [fp, #-5]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	IoReleaseCancelSpinLock, .-IoReleaseCancelSpinLock
	.align	2
	.global	IoSetDeviceInterfaceState
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoSetDeviceInterfaceState, %function
IoSetDeviceInterfaceState:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, r1
	strb	r3, [fp, #-17]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L340
	nop
.L337:
	mov	r3, #0
	b	.L339
.L340:
	nop
.L338:
	mov	r3, #-1073741823
.L339:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoSetDeviceInterfaceState, .-IoSetDeviceInterfaceState
	.align	2
	.global	IoSetHardErrorOrVerifyDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoSetHardErrorOrVerifyDevice, %function
IoSetHardErrorOrVerifyDevice:
	@ 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	IoSetHardErrorOrVerifyDevice, .-IoSetHardErrorOrVerifyDevice
	.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, .L347
	ldr	r2, [r3]
	ldr	r3, .L347+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L344
	ldr	r3, .L347+8
	ldr	r3, [r3]
	ldr	r2, .L347
	str	r3, [r2]
	pop	{fp, pc}
.L344:
	bl	errorFn
	nop
	pop	{fp, pc}
.L348:
	.align	2
.L347:
	.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]
	bl	__VERIFIER_nondet_pointer
	str	r0, [fp, #-16]
	ldr	r3, .L367
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L350
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	KbFilter_Complete
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #-1073741802
	bne	.L350
	bl	stubMoreProcessingRequired
.L350:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L365
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L366
	b	.L364
.L365:
	nop
.L352:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L356
.L364:
.L354:
	mov	r3, #-1073741823
	str	r3, [fp, #-24]
	b	.L356
.L366:
	nop
.L355:
	ldr	r3, .L367+4
	str	r3, [fp, #-24]
	nop
.L356:
	ldr	r3, .L367+8
	ldr	r2, [r3]
	ldr	r3, .L367+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L357
	ldr	r3, .L367+16
	ldr	r3, [r3]
	ldr	r2, .L367+8
	str	r3, [r2]
	ldr	r2, .L367+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L358
.L357:
	ldr	r3, .L367+8
	ldr	r2, [r3]
	ldr	r3, .L367+24
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L359
	ldr	r3, [fp, #-24]
	ldr	r2, .L367+4
	cmp	r3, r2
	bne	.L360
	ldr	r3, .L367+28
	ldr	r3, [r3]
	ldr	r2, .L367+8
	str	r3, [r2]
	ldr	r2, .L367+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L358
.L360:
	ldr	r3, .L367+12
	ldr	r3, [r3]
	ldr	r2, .L367+8
	str	r3, [r2]
	ldr	r2, .L367+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L358
.L359:
	ldr	r3, .L367+8
	ldr	r2, [r3]
	ldr	r3, .L367+32
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L361
	ldr	r3, .L367+36
	ldr	r3, [r3]
	ldr	r2, .L367+8
	str	r3, [r2]
	ldr	r2, .L367+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L358
.L361:
	bl	errorFn
.L358:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L368:
	.align	2
.L367:
	.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]
	mov	r3, r1
	strb	r3, [fp, #-9]
	ldr	r3, .L373
	ldr	r2, [r3]
	ldr	r3, .L373+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L370
	ldr	r3, .L373+8
	ldr	r3, [r3]
	ldr	r2, .L373
	str	r3, [r2]
	b	.L369
.L370:
	bl	errorFn
	nop
.L369:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L374:
	.align	2
.L373:
	.word	s
	.word	NP
	.word	DC
	.size	IofCompleteRequest, .-IofCompleteRequest
	.align	2
	.global	KeAcquireSpinLockRaiseToDpc
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeAcquireSpinLockRaiseToDpc, %function
KeAcquireSpinLockRaiseToDpc:
	@ 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]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	KeAcquireSpinLockRaiseToDpc, .-KeAcquireSpinLockRaiseToDpc
	.align	2
	.global	KeDelayExecutionThread
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeDelayExecutionThread, %function
KeDelayExecutionThread:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	str	r2, [fp, #-20]
	strb	r3, [fp, #-13]
	mov	r3, r1
	strb	r3, [fp, #-14]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L382
	nop
.L379:
	mov	r3, #0
	b	.L381
.L382:
	nop
.L380:
	mov	r3, #-1073741823
.L381:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	KeDelayExecutionThread, .-KeDelayExecutionThread
	.align	2
	.global	KeInitializeEvent
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeInitializeEvent, %function
KeInitializeEvent:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r3, r2
	strb	r3, [fp, #-13]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	KeInitializeEvent, .-KeInitializeEvent
	.align	2
	.global	KeInitializeSemaphore
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeInitializeSemaphore, %function
KeInitializeSemaphore:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	KeInitializeSemaphore, .-KeInitializeSemaphore
	.align	2
	.global	KeInitializeSpinLock
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeInitializeSpinLock, %function
KeInitializeSpinLock:
	@ 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	KeInitializeSpinLock, .-KeInitializeSpinLock
	.align	2
	.global	KeReleaseSemaphore
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeReleaseSemaphore, %function
KeReleaseSemaphore:
	@ 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]
	strb	r3, [fp, #-25]
	bl	__VERIFIER_nondet_long
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	KeReleaseSemaphore, .-KeReleaseSemaphore
	.align	2
	.global	KfReleaseSpinLock
	.syntax unified
	.arm
	.fpu softvfp
	.type	KfReleaseSpinLock, %function
KfReleaseSpinLock:
	@ 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]
	mov	r3, r1
	strb	r3, [fp, #-9]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	KfReleaseSpinLock, .-KfReleaseSpinLock
	.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]
	mov	r3, r2
	strb	r3, [fp, #-21]
	bl	__VERIFIER_nondet_long
	str	r0, [fp, #-8]
	ldr	r3, .L395
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L396:
	.align	2
.L395:
	.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]
	mov	r1, r2
	mov	r2, r3
	mov	r3, r1
	strb	r3, [fp, #-21]
	mov	r3, r2
	strb	r3, [fp, #-22]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, .L409
	ldr	r2, [r3]
	ldr	r3, .L409+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L406
	ldr	r3, .L409+8
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L407
	ldr	r3, .L409+12
	ldr	r3, [r3]
	ldr	r2, .L409
	str	r3, [r2]
	ldr	r3, .L409+8
	mov	r2, #0
	str	r2, [r3]
	b	.L400
.L406:
	nop
	b	.L398
.L407:
	nop
.L398:
	ldr	r3, .L409+16
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L401
	ldr	r3, .L409+12
	ldr	r3, [r3]
	ldr	r2, .L409
	str	r3, [r2]
	ldr	r3, .L409+16
	mov	r2, #0
	str	r2, [r3]
	b	.L400
.L401:
	ldr	r3, .L409
	ldr	r2, [r3]
	ldr	r3, .L409+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L400
	bl	errorFn
.L400:
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L408
	nop
.L403:
	mov	r3, #0
	b	.L405
.L408:
	nop
.L404:
	mov	r3, #-1073741823
.L405:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L410:
	.align	2
.L409:
	.word	s
	.word	MPR3
	.word	setEventCalled
	.word	NP
	.word	customIrp
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.align	2
	.global	MmAllocateContiguousMemory
	.syntax unified
	.arm
	.fpu softvfp
	.type	MmAllocateContiguousMemory, %function
MmAllocateContiguousMemory:
	@ 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	r2, [fp, #-28]
	str	r3, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L420
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bne	.L421
	b	.L419
.L420:
	nop
.L413:
	ldr	r0, [fp, #-16]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L417
.L419:
.L415:
	mov	r3, #0
	b	.L417
.L421:
	nop
.L416:
	mov	r3, #0
.L417:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	MmAllocateContiguousMemory, .-MmAllocateContiguousMemory
	.align	2
	.global	MmFreeContiguousMemory
	.syntax unified
	.arm
	.fpu softvfp
	.type	MmFreeContiguousMemory, %function
MmFreeContiguousMemory:
	@ 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	MmFreeContiguousMemory, .-MmFreeContiguousMemory
	.align	2
	.global	MmMapLockedPagesSpecifyCache
	.syntax unified
	.arm
	.fpu softvfp
	.type	MmMapLockedPagesSpecifyCache, %function
MmMapLockedPagesSpecifyCache:
	@ args = 8, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-8]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	mov	r3, r1
	strb	r3, [fp, #-9]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	MmMapLockedPagesSpecifyCache, .-MmMapLockedPagesSpecifyCache
	.align	2
	.global	MmPageEntireDriver
	.syntax unified
	.arm
	.fpu softvfp
	.type	MmPageEntireDriver, %function
MmPageEntireDriver:
	@ 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]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	MmPageEntireDriver, .-MmPageEntireDriver
	.align	2
	.global	MmResetDriverPaging
	.syntax unified
	.arm
	.fpu softvfp
	.type	MmResetDriverPaging, %function
MmResetDriverPaging:
	@ 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	MmResetDriverPaging, .-MmResetDriverPaging
	.align	2
	.global	MmUnlockPages
	.syntax unified
	.arm
	.fpu softvfp
	.type	MmUnlockPages, %function
MmUnlockPages:
	@ 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	MmUnlockPages, .-MmUnlockPages
	.align	2
	.global	ObReferenceObjectByHandle
	.syntax unified
	.arm
	.fpu softvfp
	.type	ObReferenceObjectByHandle, %function
ObReferenceObjectByHandle:
	@ args = 8, 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]
	strb	r3, [fp, #-25]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L437
	nop
.L434:
	mov	r3, #0
	b	.L436
.L437:
	nop
.L435:
	mov	r3, #-1073741823
.L436:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ObReferenceObjectByHandle, .-ObReferenceObjectByHandle
	.align	2
	.global	ObfDereferenceObject
	.syntax unified
	.arm
	.fpu softvfp
	.type	ObfDereferenceObject, %function
ObfDereferenceObject:
	@ 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	ObfDereferenceObject, .-ObfDereferenceObject
	.align	2
	.global	PoCallDriver
	.syntax unified
	.arm
	.fpu softvfp
	.type	PoCallDriver, %function
PoCallDriver:
	@ 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_pointer
	str	r0, [fp, #-16]
	ldr	r3, .L458
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L441
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	KbFilter_Complete
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #-1073741802
	bne	.L441
	bl	stubMoreProcessingRequired
.L441:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L456
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L457
	b	.L455
.L456:
	nop
.L443:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L447
.L455:
.L445:
	mov	r3, #-1073741823
	str	r3, [fp, #-24]
	b	.L447
.L457:
	nop
.L446:
	ldr	r3, .L458+4
	str	r3, [fp, #-24]
	nop
.L447:
	ldr	r3, .L458+8
	ldr	r2, [r3]
	ldr	r3, .L458+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L448
	ldr	r3, .L458+16
	ldr	r3, [r3]
	ldr	r2, .L458+8
	str	r3, [r2]
	ldr	r2, .L458+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L449
.L448:
	ldr	r3, .L458+8
	ldr	r2, [r3]
	ldr	r3, .L458+24
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L450
	ldr	r3, [fp, #-24]
	ldr	r2, .L458+4
	cmp	r3, r2
	bne	.L451
	ldr	r3, .L458+28
	ldr	r3, [r3]
	ldr	r2, .L458+8
	str	r3, [r2]
	ldr	r2, .L458+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L449
.L451:
	ldr	r3, .L458+12
	ldr	r3, [r3]
	ldr	r2, .L458+8
	str	r3, [r2]
	ldr	r2, .L458+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L449
.L450:
	ldr	r3, .L458+8
	ldr	r2, [r3]
	ldr	r3, .L458+32
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L452
	ldr	r3, .L458+36
	ldr	r3, [r3]
	ldr	r2, .L458+8
	str	r3, [r2]
	ldr	r2, .L458+20
	ldr	r3, [fp, #-24]
	str	r3, [r2]
	b	.L449
.L452:
	bl	errorFn
.L449:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L459:
	.align	2
.L458:
	.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	PoStartNextPowerIrp
	.syntax unified
	.arm
	.fpu softvfp
	.type	PoStartNextPowerIrp, %function
PoStartNextPowerIrp:
	@ 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	PoStartNextPowerIrp, .-PoStartNextPowerIrp
	.align	2
	.global	PsCreateSystemThread
	.syntax unified
	.arm
	.fpu softvfp
	.type	PsCreateSystemThread, %function
PsCreateSystemThread:
	@ args = 12, 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, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L467
	nop
.L464:
	mov	r3, #0
	b	.L466
.L467:
	nop
.L465:
	mov	r3, #-1073741823
.L466:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	PsCreateSystemThread, .-PsCreateSystemThread
	.align	2
	.global	PsTerminateSystemThread
	.syntax unified
	.arm
	.fpu softvfp
	.type	PsTerminateSystemThread, %function
PsTerminateSystemThread:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L473
	nop
.L470:
	mov	r3, #0
	b	.L472
.L473:
	nop
.L471:
	mov	r3, #-1073741823
.L472:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	PsTerminateSystemThread, .-PsTerminateSystemThread
	.align	2
	.global	RtlAnsiStringToUnicodeString
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlAnsiStringToUnicodeString, %function
RtlAnsiStringToUnicodeString:
	@ 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]
	mov	r3, r2
	strb	r3, [fp, #-21]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L479
	nop
.L476:
	mov	r3, #0
	b	.L478
.L479:
	nop
.L477:
	mov	r3, #-1073741823
.L478:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RtlAnsiStringToUnicodeString, .-RtlAnsiStringToUnicodeString
	.align	2
	.global	RtlCompareMemory
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlCompareMemory, %function
RtlCompareMemory:
	@ 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_long
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RtlCompareMemory, .-RtlCompareMemory
	.align	2
	.global	RtlCopyUnicodeString
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlCopyUnicodeString, %function
RtlCopyUnicodeString:
	@ 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	RtlCopyUnicodeString, .-RtlCopyUnicodeString
	.align	2
	.global	RtlDeleteRegistryValue
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlDeleteRegistryValue, %function
RtlDeleteRegistryValue:
	@ 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, [fp, #-8]
	cmp	r3, #0
	bne	.L489
	nop
.L486:
	mov	r3, #0
	b	.L488
.L489:
	nop
.L487:
	mov	r3, #-1073741823
.L488:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RtlDeleteRegistryValue, .-RtlDeleteRegistryValue
	.align	2
	.global	RtlFreeUnicodeString
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlFreeUnicodeString, %function
RtlFreeUnicodeString:
	@ 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	RtlFreeUnicodeString, .-RtlFreeUnicodeString
	.align	2
	.global	RtlInitString
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlInitString, %function
RtlInitString:
	@ 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	RtlInitString, .-RtlInitString
	.align	2
	.global	RtlInitUnicodeString
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlInitUnicodeString, %function
RtlInitUnicodeString:
	@ 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	RtlInitUnicodeString, .-RtlInitUnicodeString
	.align	2
	.global	RtlQueryRegistryValues
	.syntax unified
	.arm
	.fpu softvfp
	.type	RtlQueryRegistryValues, %function
RtlQueryRegistryValues:
	@ 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]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L501
	nop
.L498:
	mov	r3, #0
	b	.L500
.L501:
	nop
.L499:
	mov	r3, #-1073741823
.L500:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	RtlQueryRegistryValues, .-RtlQueryRegistryValues
	.align	2
	.global	ZwClose
	.syntax unified
	.arm
	.fpu softvfp
	.type	ZwClose, %function
ZwClose:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L507
	nop
.L504:
	mov	r3, #0
	b	.L506
.L507:
	nop
.L505:
	mov	r3, #-1073741823
.L506:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ZwClose, .-ZwClose
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
