	.file	"330339.c"
	.intel_syntax noprefix
	.text
	.globl	FloppyThread
	.bss
	.align 4
	.type	FloppyThread, @object
	.size	FloppyThread, 4
FloppyThread:
	.zero	4
	.globl	KernelMode
	.align 4
	.type	KernelMode, @object
	.size	KernelMode, 4
KernelMode:
	.zero	4
	.globl	Suspended
	.align 4
	.type	Suspended, @object
	.size	Suspended, 4
Suspended:
	.zero	4
	.globl	Executive
	.align 4
	.type	Executive, @object
	.size	Executive, 4
Executive:
	.zero	4
	.globl	DiskController
	.align 4
	.type	DiskController, @object
	.size	DiskController, 4
DiskController:
	.zero	4
	.globl	FloppyDiskPeripheral
	.align 4
	.type	FloppyDiskPeripheral, @object
	.size	FloppyDiskPeripheral, 4
FloppyDiskPeripheral:
	.zero	4
	.globl	FlConfigCallBack
	.align 4
	.type	FlConfigCallBack, @object
	.size	FlConfigCallBack, 4
FlConfigCallBack:
	.zero	4
	.globl	MaximumInterfaceType
	.align 4
	.type	MaximumInterfaceType, @object
	.size	MaximumInterfaceType, 4
MaximumInterfaceType:
	.zero	4
	.globl	MOUNTDEV_MOUNTED_DEVICE_GUID
	.align 4
	.type	MOUNTDEV_MOUNTED_DEVICE_GUID, @object
	.size	MOUNTDEV_MOUNTED_DEVICE_GUID, 4
MOUNTDEV_MOUNTED_DEVICE_GUID:
	.zero	4
	.globl	myStatus
	.align 4
	.type	myStatus, @object
	.size	myStatus, 4
myStatus:
	.zero	4
	.globl	s
	.align 4
	.type	s, @object
	.size	s, 4
s:
	.zero	4
	.globl	UNLOADED
	.align 4
	.type	UNLOADED, @object
	.size	UNLOADED, 4
UNLOADED:
	.zero	4
	.globl	NP
	.align 4
	.type	NP, @object
	.size	NP, 4
NP:
	.zero	4
	.globl	DC
	.align 4
	.type	DC, @object
	.size	DC, 4
DC:
	.zero	4
	.globl	SKIP1
	.align 4
	.type	SKIP1, @object
	.size	SKIP1, 4
SKIP1:
	.zero	4
	.globl	SKIP2
	.align 4
	.type	SKIP2, @object
	.size	SKIP2, 4
SKIP2:
	.zero	4
	.globl	MPR1
	.align 4
	.type	MPR1, @object
	.size	MPR1, 4
MPR1:
	.zero	4
	.globl	MPR3
	.align 4
	.type	MPR3, @object
	.size	MPR3, 4
MPR3:
	.zero	4
	.globl	IPC
	.align 4
	.type	IPC, @object
	.size	IPC, 4
IPC:
	.zero	4
	.globl	pended
	.align 4
	.type	pended, @object
	.size	pended, 4
pended:
	.zero	4
	.globl	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
	.text
	.globl	errorFn
	.type	errorFn, @function
errorFn:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
.L2:
	mov	eax, 0
	call	__VERIFIER_error@PLT
	.cfi_endproc
.LFE0:
	.size	errorFn, .-errorFn
	.globl	_BLAST_init
	.type	_BLAST_init, @function
_BLAST_init:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR UNLOADED[rip], 0
	mov	DWORD PTR NP[rip], 1
	mov	DWORD PTR DC[rip], 2
	mov	DWORD PTR SKIP1[rip], 3
	mov	DWORD PTR SKIP2[rip], 4
	mov	DWORD PTR MPR1[rip], 5
	mov	DWORD PTR MPR3[rip], 6
	mov	DWORD PTR IPC[rip], 7
	mov	eax, DWORD PTR UNLOADED[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR pended[rip], 0
	mov	DWORD PTR 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	PagingReferenceCount
	.bss
	.align 4
	.type	PagingReferenceCount, @object
	.size	PagingReferenceCount, 4
PagingReferenceCount:
	.zero	4
	.globl	PagingMutex
	.align 4
	.type	PagingMutex, @object
	.size	PagingMutex, 4
PagingMutex:
	.zero	4
	.text
	.globl	FlAcpiConfigureFloppy
	.type	FlAcpiConfigureFloppy, @function
FlAcpiConfigureFloppy:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	FlAcpiConfigureFloppy, .-FlAcpiConfigureFloppy
	.globl	FlQueueIrpToThread
	.type	FlQueueIrpToThread, @function
FlQueueIrpToThread:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -32[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -28[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -28[rbp], 1
	jne	.L8
	mov	DWORD PTR myStatus[rip], -1073741101
	mov	DWORD PTR -8[rbp], -1073741101
	mov	DWORD PTR -4[rbp], 0
	mov	eax, -1073741101
	jmp	.L9
.L8:
	add	DWORD PTR -24[rbp], 1
	cmp	DWORD PTR -24[rbp], 0
	jne	.L10
	add	DWORD PTR -24[rbp], 1
	mov	eax, DWORD PTR PagingReferenceCount[rip]
	add	eax, 1
	mov	DWORD PTR PagingReferenceCount[rip], eax
	mov	esi, DWORD PTR FloppyThread[rip]
	mov	edx, DWORD PTR -16[rbp]
	mov	eax, DWORD PTR -32[rbp]
	sub	rsp, 8
	mov	ecx, DWORD PTR -40[rbp]
	push	rcx
	mov	r9d, esi
	mov	r8d, 0
	mov	ecx, 0
	mov	esi, 0
	mov	edi, eax
	call	PsCreateSystemThread
	add	rsp, 16
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	jns	.L11
	mov	DWORD PTR -24[rbp], -1
	mov	eax, DWORD PTR PagingReferenceCount[rip]
	sub	eax, 1
	mov	DWORD PTR PagingReferenceCount[rip], eax
	mov	eax, DWORD PTR -12[rbp]
	jmp	.L9
.L11:
	mov	edx, DWORD PTR KernelMode[rip]
	mov	ecx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -32[rbp]
	mov	r9d, 0
	mov	r8d, ecx
	mov	ecx, edx
	mov	edx, 0
	mov	esi, 1048576
	mov	edi, eax
	call	ObReferenceObjectByHandle
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -32[rbp]
	mov	edi, eax
	call	ZwClose
	cmp	DWORD PTR -12[rbp], 0
	jns	.L10
	mov	eax, DWORD PTR -12[rbp]
	jmp	.L9
.L10:
	mov	eax, DWORD PTR pended[rip]
	test	eax, eax
	jne	.L12
	mov	DWORD PTR pended[rip], 1
	jmp	.L13
.L12:
	call	errorFn
.L13:
	mov	eax, 259
.L9:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	FlQueueIrpToThread, .-FlQueueIrpToThread
	.globl	FloppyPnp
	.type	FloppyPnp, @function
FloppyPnp:
.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, 144
	mov	DWORD PTR -132[rbp], edi
	mov	DWORD PTR -136[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -116[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -112[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -108[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -104[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -100[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -96[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -92[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -88[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -84[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -80[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -76[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -72[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -68[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -64[rbp], eax
	mov	DWORD PTR -120[rbp], 0
	mov	eax, DWORD PTR PagingReferenceCount[rip]
	add	eax, 1
	mov	DWORD PTR PagingReferenceCount[rip], eax
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -56[rbp], eax
	cmp	DWORD PTR -104[rbp], 0
	je	.L15
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -48[rbp], -1073741738
	mov	DWORD PTR myStatus[rip], -1073741738
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	mov	eax, -1073741738
	jmp	.L16
.L15:
	cmp	DWORD PTR -72[rbp], 0
	je	.L60
	cmp	DWORD PTR -72[rbp], 5
	je	.L61
	cmp	DWORD PTR -72[rbp], 1
	je	.L62
	cmp	DWORD PTR -72[rbp], 6
	je	.L63
	cmp	DWORD PTR -72[rbp], 3
	je	.L64
	cmp	DWORD PTR -72[rbp], 4
	je	.L65
	cmp	DWORD PTR -72[rbp], 2
	jne	.L66
	jmp	.L59
.L60:
	nop
.L18:
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -132[rbp]
	mov	esi, edx
	mov	edi, eax
	call	FloppyStartDevice
	mov	DWORD PTR -120[rbp], eax
	jmp	.L54
.L20:
.L61:
	nop
	jmp	.L55
.L62:
	nop
.L55:
	cmp	DWORD PTR -100[rbp], 0
	jne	.L31
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L32
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L33
.L32:
	call	errorFn
.L33:
	add	DWORD PTR -108[rbp], 1
	add	DWORD PTR -112[rbp], 1
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	jmp	.L16
.L31:
	mov	DWORD PTR -52[rbp], 1
	mov	edx, DWORD PTR -60[rbp]
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, edx
	mov	edi, eax
	call	FlQueueIrpToThread
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L34
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -92[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	DWORD PTR -92[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L35
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L36
.L35:
	call	errorFn
.L36:
	add	DWORD PTR -108[rbp], 1
	add	DWORD PTR -112[rbp], 1
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -120[rbp], eax
	jmp	.L54
.L34:
	mov	DWORD PTR -120[rbp], -1073741823
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	DWORD PTR -20[rbp], 0
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	jmp	.L54
.L23:
.L63:
	nop
	jmp	.L56
.L64:
	nop
.L56:
	cmp	DWORD PTR -100[rbp], 0
	jne	.L38
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L39
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L40
.L39:
	call	errorFn
.L40:
	add	DWORD PTR -108[rbp], 1
	add	DWORD PTR -112[rbp], 1
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -120[rbp], eax
	jmp	.L54
.L38:
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	mov	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	sub	eax, 1
	mov	DWORD PTR -40[rbp], eax
	mov	DWORD PTR -36[rbp], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	je	.L42
	call	errorFn
	jmp	.L43
.L42:
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L44
	call	errorFn
	jmp	.L43
.L44:
	mov	DWORD PTR compRegistered[rip], 1
.L43:
	mov	eax, DWORD PTR -112[rbp]
	sub	eax, 1
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	mov	DWORD PTR -28[rbp], eax
	mov	DWORD PTR -24[rbp], 224
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	cdqe
	mov	QWORD PTR -16[rbp], rax
	cmp	QWORD PTR -16[rbp], 259
	jne	.L45
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -64[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	eax, DWORD PTR myStatus[rip]
	mov	DWORD PTR -120[rbp], eax
.L45:
	mov	DWORD PTR -52[rbp], 0
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	DWORD PTR -20[rbp], 0
	mov	eax, DWORD PTR -136[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	jmp	.L54
.L65:
	nop
.L26:
	mov	DWORD PTR -100[rbp], 0
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L46
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L47
.L46:
	call	errorFn
.L47:
	add	DWORD PTR -108[rbp], 1
	add	DWORD PTR -112[rbp], 1
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -120[rbp], eax
	jmp	.L54
.L59:
.L28:
	mov	DWORD PTR -52[rbp], 0
	mov	DWORD PTR -100[rbp], 0
	mov	DWORD PTR -104[rbp], 1
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L48
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L49
.L48:
	call	errorFn
.L49:
	add	DWORD PTR -108[rbp], 1
	add	DWORD PTR -112[rbp], 1
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -88[rbp], 0
	je	.L50
	mov	eax, DWORD PTR -84[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IoSetDeviceInterfaceState
.L50:
	cmp	DWORD PTR -80[rbp], 0
	je	.L51
	mov	eax, DWORD PTR -76[rbp]
	mov	edi, eax
	call	IoDeleteSymbolicLink
.L51:
	sub	DWORD PTR -68[rbp], 1
	jmp	.L54
.L66:
	nop
.L29:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L52
	mov	eax, DWORD PTR SKIP1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L53
.L52:
	call	errorFn
.L53:
	add	DWORD PTR -108[rbp], 1
	add	DWORD PTR -112[rbp], 1
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -96[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -120[rbp], eax
.L30:
.L54:
	mov	eax, DWORD PTR PagingReferenceCount[rip]
	sub	eax, 1
	mov	DWORD PTR PagingReferenceCount[rip], eax
	mov	eax, DWORD PTR -120[rbp]
.L16:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	FloppyPnp, .-FloppyPnp
	.globl	FloppyStartDevice
	.type	FloppyStartDevice, @function
FloppyStartDevice:
.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, 192
	mov	DWORD PTR -180[rbp], edi
	mov	DWORD PTR -184[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -164[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -160[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -156[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -152[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -148[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -144[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -140[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -136[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -132[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -128[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -124[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -120[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -116[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -112[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -108[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -104[rbp], eax
	mov	eax, DWORD PTR DiskController[rip]
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR FloppyDiskPeripheral[rip]
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	sub	eax, 1
	mov	DWORD PTR -80[rbp], eax
	mov	DWORD PTR -76[rbp], 0
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	je	.L68
	call	errorFn
	jmp	.L69
.L68:
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L70
	call	errorFn
	jmp	.L69
.L70:
	mov	DWORD PTR compRegistered[rip], 1
.L69:
	mov	eax, DWORD PTR -160[rbp]
	sub	eax, 1
	mov	DWORD PTR -72[rbp], eax
	mov	eax, DWORD PTR -140[rbp]
	mov	DWORD PTR -68[rbp], eax
	mov	DWORD PTR -64[rbp], 224
	mov	edx, DWORD PTR -184[rbp]
	mov	eax, DWORD PTR -156[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L71
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Executive[rip]
	mov	eax, DWORD PTR -140[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR myStatus[rip]
	mov	DWORD PTR -172[rbp], eax
.L71:
	mov	DWORD PTR -60[rbp], 0
	mov	DWORD PTR -56[rbp], 0
	mov	DWORD PTR -52[rbp], 3080
	mov	DWORD PTR -48[rbp], 458752
	mov	DWORD PTR -44[rbp], 461832
	mov	DWORD PTR -40[rbp], 461835
	mov	edx, DWORD PTR -136[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -156[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	FlFdcDeviceIo
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 0
	js	.L72
	mov	eax, DWORD PTR -132[rbp]
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -128[rbp], 0
	je	.L85
	cmp	DWORD PTR -124[rbp], 0
	je	.L86
	mov	edx, DWORD PTR -136[rbp]
	mov	eax, DWORD PTR -92[rbp]
	mov	esi, edx
	mov	edi, eax
	call	FlAcpiConfigureFloppy
	mov	DWORD PTR -172[rbp], eax
	jmp	.L75
.L73:
.L85:
	nop
	jmp	.L84
.L86:
	nop
.L84:
	mov	DWORD PTR -168[rbp], 0
.L76:
	mov	eax, DWORD PTR MaximumInterfaceType[rip]
	cmp	DWORD PTR -168[rbp], eax
	jge	.L87
	mov	eax, DWORD PTR -168[rbp]
	mov	DWORD PTR -32[rbp], eax
	mov	edi, DWORD PTR FlConfigCallBack[rip]
	mov	r9d, DWORD PTR -120[rbp]
	mov	r10d, DWORD PTR -96[rbp]
	mov	ecx, DWORD PTR -116[rbp]
	mov	edx, DWORD PTR -100[rbp]
	mov	esi, DWORD PTR -108[rbp]
	mov	eax, DWORD PTR -32[rbp]
	mov	r8d, DWORD PTR -92[rbp]
	push	r8
	push	rdi
	mov	r8d, r10d
	mov	edi, eax
	call	IoQueryDeviceDescription
	add	rsp, 16
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 0
	jns	.L88
	add	DWORD PTR -168[rbp], 1
	jmp	.L76
.L78:
.L87:
	nop
	jmp	.L75
.L88:
	nop
.L75:
	cmp	DWORD PTR -172[rbp], 0
	js	.L72
	cmp	DWORD PTR -104[rbp], 0
	je	.L80
	mov	eax, DWORD PTR -112[rbp]
	mov	DWORD PTR -28[rbp], eax
	jmp	.L81
.L80:
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -28[rbp], eax
.L81:
	mov	esi, DWORD PTR MOUNTDEV_MOUNTED_DEVICE_GUID[rip]
	mov	edx, DWORD PTR -144[rbp]
	mov	eax, DWORD PTR -148[rbp]
	mov	ecx, edx
	mov	edx, 0
	mov	edi, eax
	call	IoRegisterDeviceInterface
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	js	.L82
	mov	eax, DWORD PTR -144[rbp]
	mov	esi, 1
	mov	edi, eax
	call	IoSetDeviceInterfaceState
	mov	DWORD PTR -24[rbp], eax
.L82:
	mov	DWORD PTR -20[rbp], 1
	mov	DWORD PTR -16[rbp], 0
.L72:
	mov	eax, DWORD PTR -172[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	mov	DWORD PTR myStatus[rip], eax
	mov	eax, DWORD PTR -184[rbp]
	mov	esi, 0
	mov	edi, eax
	call	IofCompleteRequest
	mov	eax, DWORD PTR -172[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	FloppyStartDevice, .-FloppyStartDevice
	.globl	FloppyPnpComplete
	.type	FloppyPnpComplete, @function
FloppyPnpComplete:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, 0
	mov	esi, 1
	mov	edi, eax
	call	KeSetEvent
	mov	eax, -1073741802
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	FloppyPnpComplete, .-FloppyPnpComplete
	.globl	FlFdcDeviceIo
	.type	FlFdcDeviceIo, @function
FlFdcDeviceIo:
.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	DWORD PTR -52[rbp], edi
	mov	DWORD PTR -56[rbp], esi
	mov	DWORD PTR -60[rbp], edx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -32[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -28[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	mov	esi, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -56[rbp]
	sub	rsp, 8
	mov	edx, DWORD PTR -28[rbp]
	push	rdx
	mov	edx, DWORD PTR -32[rbp]
	push	rdx
	push	1
	mov	r9d, 0
	mov	r8d, 0
	mov	ecx, 0
	mov	edx, 0
	mov	edi, eax
	call	IoBuildDeviceIoControlRequest
	add	rsp, 32
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L92
	mov	eax, -1073741670
	jmp	.L93
.L92:
	mov	eax, DWORD PTR -24[rbp]
	sub	eax, 1
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, edx
	mov	edi, eax
	call	IofCallDriver
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 259
	jne	.L94
	mov	edx, DWORD PTR KernelMode[rip]
	mov	esi, DWORD PTR Suspended[rip]
	mov	eax, DWORD PTR -32[rbp]
	mov	r8d, 0
	mov	ecx, 0
	mov	edi, eax
	call	KeWaitForSingleObject
	mov	eax, DWORD PTR myStatus[rip]
	mov	DWORD PTR -36[rbp], eax
.L94:
	mov	eax, DWORD PTR -36[rbp]
.L93:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	FlFdcDeviceIo, .-FlFdcDeviceIo
	.globl	FloppyProcessQueuedRequests
	.type	FloppyProcessQueuedRequests, @function
FloppyProcessQueuedRequests:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], edi
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	FloppyProcessQueuedRequests, .-FloppyProcessQueuedRequests
	.globl	stub_driver_init
	.type	stub_driver_init, @function
stub_driver_init:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR pended[rip], 0
	mov	DWORD PTR 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
.LFE9:
	.size	stub_driver_init, .-stub_driver_init
	.globl	main
	.type	main, @function
main:
.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, 32
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -20[rbp], eax
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	mov	DWORD PTR FloppyThread[rip], 0
	mov	DWORD PTR KernelMode[rip], 0
	mov	DWORD PTR Suspended[rip], 0
	mov	DWORD PTR Executive[rip], 0
	mov	DWORD PTR DiskController[rip], 0
	mov	DWORD PTR FloppyDiskPeripheral[rip], 0
	mov	DWORD PTR FlConfigCallBack[rip], 0
	mov	DWORD PTR MaximumInterfaceType[rip], 0
	mov	DWORD PTR MOUNTDEV_MOUNTED_DEVICE_GUID[rip], 0
	mov	DWORD PTR myStatus[rip], 0
	mov	DWORD PTR s[rip], 0
	mov	DWORD PTR UNLOADED[rip], 0
	mov	DWORD PTR NP[rip], 0
	mov	DWORD PTR DC[rip], 0
	mov	DWORD PTR SKIP1[rip], 0
	mov	DWORD PTR SKIP2[rip], 0
	mov	DWORD PTR MPR1[rip], 0
	mov	DWORD PTR MPR3[rip], 0
	mov	DWORD PTR IPC[rip], 0
	mov	DWORD PTR pended[rip], 0
	mov	DWORD PTR compRegistered[rip], 0
	mov	DWORD PTR lowerDriverReturn[rip], 0
	mov	DWORD PTR setEventCalled[rip], 0
	mov	DWORD PTR customIrp[rip], 0
	mov	DWORD PTR -28[rbp], 0
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -12[rbp], eax
	call	_BLAST_init
	cmp	DWORD PTR -28[rbp], 0
	js	.L100
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR customIrp[rip], 0
	mov	eax, DWORD PTR customIrp[rip]
	mov	DWORD PTR setEventCalled[rip], eax
	mov	eax, DWORD PTR setEventCalled[rip]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	mov	eax, DWORD PTR lowerDriverReturn[rip]
	mov	DWORD PTR compRegistered[rip], eax
	mov	eax, DWORD PTR compRegistered[rip]
	mov	DWORD PTR pended[rip], eax
	mov	DWORD PTR -8[rbp], 0
	mov	DWORD PTR myStatus[rip], 0
	cmp	DWORD PTR -20[rbp], 0
	jne	.L101
	mov	DWORD PTR -8[rbp], -1073741637
	mov	DWORD PTR myStatus[rip], -1073741637
.L101:
	call	stub_driver_init
	cmp	DWORD PTR -28[rbp], 0
	jns	.L102
	mov	eax, -1
	jmp	.L103
.L102:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 3
	jne	.L118
	nop
.L105:
	mov	edx, DWORD PTR -12[rbp]
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, edx
	mov	edi, eax
	call	FloppyPnp
	mov	DWORD PTR -28[rbp], eax
	jmp	.L100
.L118:
	nop
.L106:
	mov	eax, -1
	jmp	.L103
.L107:
.L100:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L119
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L120
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L110
.L119:
	nop
	jmp	.L108
.L120:
	nop
.L108:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L121
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L122
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L110
.L121:
	nop
	jmp	.L111
.L122:
	nop
.L111:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR UNLOADED[rip]
	cmp	edx, eax
	je	.L110
	cmp	DWORD PTR -28[rbp], -1
	je	.L110
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP2[rip]
	cmp	edx, eax
	je	.L123
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR IPC[rip]
	cmp	edx, eax
	je	.L124
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	je	.L125
	call	errorFn
	jmp	.L110
.L123:
	nop
	jmp	.L113
.L124:
	nop
	jmp	.L113
.L125:
	nop
.L113:
	mov	eax, DWORD PTR pended[rip]
	cmp	eax, 1
	jne	.L116
	cmp	DWORD PTR -28[rbp], 259
	je	.L110
	call	errorFn
	jmp	.L110
.L116:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR DC[rip]
	cmp	edx, eax
	jne	.L117
	cmp	DWORD PTR -28[rbp], 259
	jne	.L110
	call	errorFn
	jmp	.L110
.L117:
	mov	eax, DWORD PTR lowerDriverReturn[rip]
	cmp	DWORD PTR -28[rbp], eax
	je	.L110
	call	errorFn
.L110:
	mov	DWORD PTR -28[rbp], 0
	mov	eax, DWORD PTR -28[rbp]
.L103:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.globl	IoBuildDeviceIoControlRequest
	.type	IoBuildDeviceIoControlRequest, @function
IoBuildDeviceIoControlRequest:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	DWORD PTR -40[rbp], r9d
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	DWORD PTR customIrp[rip], 1
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L131
	nop
.L128:
	mov	eax, DWORD PTR -8[rbp]
	jmp	.L130
.L131:
	nop
.L129:
	mov	eax, 0
.L130:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	IoBuildDeviceIoControlRequest, .-IoBuildDeviceIoControlRequest
	.globl	IoDeleteSymbolicLink
	.type	IoDeleteSymbolicLink, @function
IoDeleteSymbolicLink:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L137
	nop
.L134:
	mov	eax, 0
	jmp	.L136
.L137:
	nop
.L135:
	mov	eax, -1073741823
.L136:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	IoDeleteSymbolicLink, .-IoDeleteSymbolicLink
	.globl	IoQueryDeviceDescription
	.type	IoQueryDeviceDescription, @function
IoQueryDeviceDescription:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	DWORD PTR -40[rbp], r9d
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L143
	nop
.L140:
	mov	eax, 0
	jmp	.L142
.L143:
	nop
.L141:
	mov	eax, -1073741823
.L142:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	IoQueryDeviceDescription, .-IoQueryDeviceDescription
	.globl	IoRegisterDeviceInterface
	.type	IoRegisterDeviceInterface, @function
IoRegisterDeviceInterface:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L149
	nop
.L146:
	mov	eax, 0
	jmp	.L148
.L149:
	nop
.L147:
	mov	eax, -1073741808
.L148:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	IoRegisterDeviceInterface, .-IoRegisterDeviceInterface
	.globl	IoSetDeviceInterfaceState
	.type	IoSetDeviceInterfaceState, @function
IoSetDeviceInterfaceState:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L155
	nop
.L152:
	mov	eax, 0
	jmp	.L154
.L155:
	nop
.L153:
	mov	eax, -1073741823
.L154:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	IoSetDeviceInterfaceState, .-IoSetDeviceInterfaceState
	.globl	stubMoreProcessingRequired
	.type	stubMoreProcessingRequired, @function
stubMoreProcessingRequired:
.LFB16:
	.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	.L157
	mov	eax, DWORD PTR MPR1[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L156
.L157:
	call	errorFn
	nop
.L156:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	stubMoreProcessingRequired, .-stubMoreProcessingRequired
	.globl	IofCallDriver
	.type	IofCallDriver, @function
IofCallDriver:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR compRegistered[rip]
	test	eax, eax
	je	.L161
	mov	edx, DWORD PTR -24[rbp]
	mov	ecx, DWORD PTR -40[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	FloppyPnpComplete
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], -1073741802
	jne	.L161
	call	stubMoreProcessingRequired
.L161:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -16[rbp], eax
	cmp	DWORD PTR -16[rbp], 0
	je	.L176
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 1
	jne	.L177
	jmp	.L175
.L176:
	nop
.L163:
	mov	DWORD PTR -28[rbp], 0
	jmp	.L167
.L175:
.L165:
	mov	DWORD PTR -28[rbp], -1073741823
	jmp	.L167
.L177:
	nop
.L166:
	mov	DWORD PTR -28[rbp], 259
	nop
.L167:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L168
	mov	eax, DWORD PTR IPC[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L169
.L168:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR1[rip]
	cmp	edx, eax
	jne	.L170
	cmp	DWORD PTR -28[rbp], 259
	jne	.L171
	mov	eax, DWORD PTR MPR3[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L169
.L171:
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L169
.L170:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR SKIP1[rip]
	cmp	edx, eax
	jne	.L172
	mov	eax, DWORD PTR SKIP2[rip]
	mov	DWORD PTR s[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR lowerDriverReturn[rip], eax
	jmp	.L169
.L172:
	call	errorFn
.L169:
	mov	eax, DWORD PTR -28[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	IofCallDriver, .-IofCallDriver
	.globl	IofCompleteRequest
	.type	IofCompleteRequest, @function
IofCompleteRequest:
.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, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR NP[rip]
	cmp	edx, eax
	jne	.L179
	mov	eax, DWORD PTR DC[rip]
	mov	DWORD PTR s[rip], eax
	jmp	.L178
.L179:
	call	errorFn
	nop
.L178:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	IofCompleteRequest, .-IofCompleteRequest
	.globl	KeSetEvent
	.type	KeSetEvent, @function
KeSetEvent:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	DWORD PTR setEventCalled[rip], 1
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	KeSetEvent, .-KeSetEvent
	.globl	KeWaitForSingleObject
	.type	KeWaitForSingleObject, @function
KeWaitForSingleObject:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L193
	mov	eax, DWORD PTR setEventCalled[rip]
	cmp	eax, 1
	jne	.L194
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR setEventCalled[rip], 0
	jmp	.L187
.L193:
	nop
	jmp	.L185
.L194:
	nop
.L185:
	mov	eax, DWORD PTR customIrp[rip]
	cmp	eax, 1
	jne	.L188
	mov	eax, DWORD PTR NP[rip]
	mov	DWORD PTR s[rip], eax
	mov	DWORD PTR customIrp[rip], 0
	jmp	.L187
.L188:
	mov	edx, DWORD PTR s[rip]
	mov	eax, DWORD PTR MPR3[rip]
	cmp	edx, eax
	jne	.L187
	call	errorFn
.L187:
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L195
	nop
.L190:
	mov	eax, 0
	jmp	.L192
.L195:
	nop
.L191:
	mov	eax, -1073741823
.L192:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.globl	ObReferenceObjectByHandle
	.type	ObReferenceObjectByHandle, @function
ObReferenceObjectByHandle:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	DWORD PTR -40[rbp], r9d
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L201
	nop
.L198:
	mov	eax, 0
	jmp	.L200
.L201:
	nop
.L199:
	mov	eax, -1073741823
.L200:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	ObReferenceObjectByHandle, .-ObReferenceObjectByHandle
	.globl	PsCreateSystemThread
	.type	PsCreateSystemThread, @function
PsCreateSystemThread:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	mov	DWORD PTR -32[rbp], ecx
	mov	DWORD PTR -36[rbp], r8d
	mov	DWORD PTR -40[rbp], r9d
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L207
	nop
.L204:
	mov	eax, 0
	jmp	.L206
.L207:
	nop
.L205:
	mov	eax, -1073741823
.L206:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	PsCreateSystemThread, .-PsCreateSystemThread
	.globl	ZwClose
	.type	ZwClose, @function
ZwClose:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L213
	nop
.L210:
	mov	eax, 0
	jmp	.L212
.L213:
	nop
.L211:
	mov	eax, -1073741823
.L212:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.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	"330339.c"
	.text
	.comm	FloppyThread,4,4
	.comm	KernelMode,4,4
	.comm	Suspended,4,4
	.comm	Executive,4,4
	.comm	DiskController,4,4
	.comm	FloppyDiskPeripheral,4,4
	.comm	FlConfigCallBack,4,4
	.comm	MaximumInterfaceType,4,4
	.comm	MOUNTDEV_MOUNTED_DEVICE_GUID,4,4
	.comm	myStatus,4,4
	.comm	s,4,4
	.comm	UNLOADED,4,4
	.comm	NP,4,4
	.comm	DC,4,4
	.comm	SKIP1,4,4
	.comm	SKIP2,4,4
	.comm	MPR1,4,4
	.comm	MPR3,4,4
	.comm	IPC,4,4
	.comm	pended,4,4
	.comm	compRegistered,4,4
	.comm	lowerDriverReturn,4,4
	.comm	setEventCalled,4,4
	.comm	customIrp,4,4
	.align	2
	.global	errorFn
	.syntax unified
	.arm
	.fpu softvfp
	.type	errorFn, %function
errorFn:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
.L2:
	bl	__VERIFIER_error
	.size	errorFn, .-errorFn
	.align	2
	.global	_BLAST_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	_BLAST_init, %function
_BLAST_init:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	ldr	r3, .L5
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+4
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L5+8
	mov	r2, #2
	str	r2, [r3]
	ldr	r3, .L5+12
	mov	r2, #3
	str	r2, [r3]
	ldr	r3, .L5+16
	mov	r2, #4
	str	r2, [r3]
	ldr	r3, .L5+20
	mov	r2, #5
	str	r2, [r3]
	ldr	r3, .L5+24
	mov	r2, #6
	str	r2, [r3]
	ldr	r3, .L5+28
	mov	r2, #7
	str	r2, [r3]
	ldr	r3, .L5
	ldr	r3, [r3]
	ldr	r2, .L5+32
	str	r3, [r2]
	ldr	r3, .L5+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+48
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L5+52
	mov	r2, #0
	str	r2, [r3]
	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	compRegistered
	.word	lowerDriverReturn
	.word	setEventCalled
	.word	customIrp
	.size	_BLAST_init, .-_BLAST_init
	.global	PagingReferenceCount
	.bss
	.align	2
	.type	PagingReferenceCount, %object
	.size	PagingReferenceCount, 4
PagingReferenceCount:
	.space	4
	.global	PagingMutex
	.align	2
	.type	PagingMutex, %object
	.size	PagingMutex, 4
PagingMutex:
	.space	4
	.text
	.align	2
	.global	FlAcpiConfigureFloppy
	.syntax unified
	.arm
	.fpu softvfp
	.type	FlAcpiConfigureFloppy, %function
FlAcpiConfigureFloppy:
	@ 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	FlAcpiConfigureFloppy, .-FlAcpiConfigureFloppy
	.align	2
	.global	FlQueueIrpToThread
	.syntax unified
	.arm
	.fpu softvfp
	.type	FlQueueIrpToThread, %function
FlQueueIrpToThread:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-36]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-32]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-32]
	cmp	r3, #1
	bne	.L10
	ldr	r3, .L16
	ldr	r2, .L16+4
	str	r2, [r3]
	ldr	r3, .L16+4
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, .L16+4
	b	.L11
.L10:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	bne	.L12
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, .L16+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L16+8
	str	r3, [r2]
	ldr	r3, .L16+12
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	str	r2, [sp, #8]
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r2, [fp, #-20]
	mov	r1, #0
	ldr	r0, [fp, #-36]
	bl	PsCreateSystemThread
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L13
	mvn	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, .L16+8
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L16+8
	str	r3, [r2]
	ldr	r3, [fp, #-16]
	b	.L11
.L13:
	ldr	r3, .L16+16
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp, #4]
	ldr	r3, [fp, #-24]
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #0
	mov	r1, #1048576
	ldr	r0, [fp, #-36]
	bl	ObReferenceObjectByHandle
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-36]
	bl	ZwClose
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bge	.L12
	ldr	r3, [fp, #-16]
	b	.L11
.L12:
	ldr	r3, .L16+20
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L14
	ldr	r3, .L16+20
	mov	r2, #1
	str	r2, [r3]
	b	.L15
.L14:
	bl	errorFn
.L15:
	ldr	r3, .L16+24
.L11:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L17:
	.align	2
.L16:
	.word	myStatus
	.word	-1073741101
	.word	PagingReferenceCount
	.word	FloppyThread
	.word	KernelMode
	.word	pended
	.word	259
	.size	FlQueueIrpToThread, .-FlQueueIrpToThread
	.align	2
	.global	FloppyPnp
	.syntax unified
	.arm
	.fpu softvfp
	.type	FloppyPnp, %function
FloppyPnp:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #128
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-112]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-108]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-104]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-100]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-96]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-92]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-88]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-84]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-80]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-76]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-72]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-68]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-64]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-116]
	ldr	r3, .L70
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L70
	str	r3, [r2]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	beq	.L19
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L70+4
	str	r3, [fp, #-44]
	ldr	r3, .L70+8
	ldr	r2, .L70+4
	str	r2, [r3]
	mov	r1, #0
	ldr	r0, [fp, #-124]
	bl	IofCompleteRequest
	ldr	r3, .L70+4
	b	.L20
.L19:
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L63
	ldr	r3, [fp, #-68]
	cmp	r3, #5
	beq	.L64
	ldr	r3, [fp, #-68]
	cmp	r3, #1
	beq	.L65
	ldr	r3, [fp, #-68]
	cmp	r3, #6
	beq	.L66
	ldr	r3, [fp, #-68]
	cmp	r3, #3
	beq	.L67
	ldr	r3, [fp, #-68]
	cmp	r3, #4
	beq	.L68
	ldr	r3, [fp, #-68]
	cmp	r3, #2
	bne	.L69
	b	.L62
.L63:
	nop
.L22:
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-120]
	bl	FloppyStartDevice
	str	r0, [fp, #-116]
	b	.L34
.L24:
.L64:
	nop
	b	.L58
.L65:
	nop
.L58:
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L35
	ldr	r3, .L70+12
	ldr	r2, [r3]
	ldr	r3, .L70+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L36
	ldr	r3, .L70+20
	ldr	r3, [r3]
	ldr	r2, .L70+12
	str	r3, [r2]
	b	.L37
.L36:
	bl	errorFn
.L37:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-92]
	bl	IofCallDriver
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	b	.L20
.L35:
	mov	r3, #1
	str	r3, [fp, #-48]
	ldr	r1, [fp, #-56]
	ldr	r0, [fp, #-124]
	bl	FlQueueIrpToThread
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L70+24
	cmp	r3, r2
	bne	.L38
	ldr	r3, .L70+28
	ldr	r1, [r3]
	ldr	r3, .L70+32
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-88]
	bl	KeWaitForSingleObject
	mov	r3, #0
	str	r3, [fp, #-88]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L70+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L70+12
	ldr	r2, [r3]
	ldr	r3, .L70+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L39
	ldr	r3, .L70+20
	ldr	r3, [r3]
	ldr	r2, .L70+12
	str	r3, [r2]
	b	.L40
.L39:
	bl	errorFn
.L40:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-92]
	bl	IofCallDriver
	str	r0, [fp, #-116]
	b	.L34
.L38:
	mov	r3, #-1073741823
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-44]
	ldr	r2, .L70+8
	ldr	r3, [fp, #-116]
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r1, #0
	ldr	r0, [fp, #-124]
	bl	IofCompleteRequest
	b	.L34
.L27:
.L66:
	nop
	b	.L59
.L67:
	nop
.L59:
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L42
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L70+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L70+12
	ldr	r2, [r3]
	ldr	r3, .L70+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L43
	ldr	r3, .L70+20
	ldr	r3, [r3]
	ldr	r2, .L70+12
	str	r3, [r2]
	b	.L44
.L43:
	bl	errorFn
.L44:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-92]
	bl	IofCallDriver
	str	r0, [fp, #-116]
	b	.L34
.L42:
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L70+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-108]
	sub	r3, r3, #1
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, .L70+12
	ldr	r2, [r3]
	ldr	r3, .L70+16
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L46
	bl	errorFn
	b	.L47
.L46:
	ldr	r3, .L70+36
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L48
	bl	errorFn
	b	.L47
.L48:
	ldr	r3, .L70+36
	mov	r2, #1
	str	r2, [r3]
.L47:
	ldr	r3, [fp, #-108]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-24]
	mov	r3, #224
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-92]
	bl	IofCallDriver
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, .L70+24
	cmp	r3, r2
	bne	.L49
	ldr	r3, .L70+28
	ldr	r1, [r3]
	ldr	r3, .L70+32
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-60]
	bl	KeWaitForSingleObject
	ldr	r3, .L70+8
	ldr	r3, [r3]
	str	r3, [fp, #-116]
.L49:
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-44]
	ldr	r2, .L70+8
	ldr	r3, [fp, #-116]
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-12]
	mov	r1, #0
	ldr	r0, [fp, #-124]
	bl	IofCompleteRequest
	b	.L34
.L68:
	nop
.L30:
	mov	r3, #0
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L70+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L70+12
	ldr	r2, [r3]
	ldr	r3, .L70+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L50
	ldr	r3, .L70+20
	ldr	r3, [r3]
	ldr	r2, .L70+12
	str	r3, [r2]
	b	.L51
.L50:
	bl	errorFn
.L51:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-92]
	bl	IofCallDriver
	str	r0, [fp, #-116]
	b	.L34
.L62:
.L32:
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-96]
	mov	r3, #1
	str	r3, [fp, #-100]
	ldr	r3, .L70+12
	ldr	r2, [r3]
	ldr	r3, .L70+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L52
	ldr	r3, .L70+20
	ldr	r3, [r3]
	ldr	r2, .L70+12
	str	r3, [r2]
	b	.L53
.L52:
	bl	errorFn
.L53:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, .L70+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-92]
	bl	IofCallDriver
	str	r0, [fp, #-116]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L54
	mov	r1, #0
	ldr	r0, [fp, #-80]
	bl	IoSetDeviceInterfaceState
.L54:
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	beq	.L55
	ldr	r0, [fp, #-72]
	bl	IoDeleteSymbolicLink
.L55:
	ldr	r3, [fp, #-64]
	sub	r3, r3, #1
	str	r3, [fp, #-64]
	b	.L34
.L69:
	nop
.L33:
	ldr	r3, .L70+12
	ldr	r2, [r3]
	ldr	r3, .L70+16
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L56
	ldr	r3, .L70+20
	ldr	r3, [r3]
	ldr	r2, .L70+12
	str	r3, [r2]
	b	.L57
.L56:
	bl	errorFn
.L57:
	ldr	r3, [fp, #-104]
	add	r3, r3, #1
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-108]
	add	r3, r3, #1
	str	r3, [fp, #-108]
	ldr	r1, [fp, #-124]
	ldr	r0, [fp, #-92]
	bl	IofCallDriver
	str	r0, [fp, #-116]
.L34:
	ldr	r3, .L70
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L70
	str	r3, [r2]
	ldr	r3, [fp, #-116]
.L20:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L71:
	.align	2
.L70:
	.word	PagingReferenceCount
	.word	-1073741738
	.word	myStatus
	.word	s
	.word	NP
	.word	SKIP1
	.word	259
	.word	Executive
	.word	KernelMode
	.word	compRegistered
	.size	FloppyPnp, .-FloppyPnp
	.align	2
	.global	FloppyStartDevice
	.syntax unified
	.arm
	.fpu softvfp
	.type	FloppyStartDevice, %function
FloppyStartDevice:
	@ args = 0, pretend = 0, frame = 176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #192
	str	r0, [fp, #-176]
	str	r1, [fp, #-180]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-164]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-160]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-156]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-152]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-148]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-144]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-140]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-136]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-132]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-128]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-124]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-120]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-116]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-112]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-108]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-104]
	ldr	r3, .L94
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r3, .L94+4
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-164]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-160]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-160]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-160]
	sub	r3, r3, #1
	str	r3, [fp, #-80]
	mov	r3, #0
	str	r3, [fp, #-76]
	ldr	r3, .L94+8
	ldr	r2, [r3]
	ldr	r3, .L94+12
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L73
	bl	errorFn
	b	.L74
.L73:
	ldr	r3, .L94+16
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L75
	bl	errorFn
	b	.L74
.L75:
	ldr	r3, .L94+16
	mov	r2, #1
	str	r2, [r3]
.L74:
	ldr	r3, [fp, #-160]
	sub	r3, r3, #1
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-140]
	str	r3, [fp, #-68]
	mov	r3, #224
	str	r3, [fp, #-64]
	ldr	r1, [fp, #-180]
	ldr	r0, [fp, #-156]
	bl	IofCallDriver
	str	r0, [fp, #-172]
	ldr	r3, [fp, #-172]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r2, .L94+20
	cmp	r3, r2
	bne	.L76
	ldr	r3, .L94+24
	ldr	r1, [r3]
	ldr	r3, .L94+28
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-140]
	bl	KeWaitForSingleObject
	str	r0, [fp, #-172]
	ldr	r3, .L94+32
	ldr	r3, [r3]
	str	r3, [fp, #-172]
.L76:
	mov	r3, #0
	str	r3, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-52]
	ldr	r3, .L94+36
	str	r3, [fp, #-48]
	mov	r3, #458752
	str	r3, [fp, #-44]
	ldr	r3, .L94+40
	str	r3, [fp, #-40]
	ldr	r3, .L94+44
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-136]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-156]
	bl	FlFdcDeviceIo
	str	r0, [fp, #-172]
	ldr	r3, [fp, #-172]
	cmp	r3, #0
	blt	.L77
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-128]
	cmp	r3, #0
	beq	.L90
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	beq	.L91
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-92]
	bl	FlAcpiConfigureFloppy
	str	r0, [fp, #-172]
	b	.L84
.L78:
.L90:
	nop
	b	.L89
.L91:
	nop
.L89:
	mov	r3, #0
	str	r3, [fp, #-168]
.L81:
	ldr	r3, .L94+48
	ldr	r3, [r3]
	ldr	r2, [fp, #-168]
	cmp	r2, r3
	bge	.L92
	ldr	r3, [fp, #-168]
	str	r3, [fp, #-28]
	ldr	r3, .L94+52
	ldr	r3, [r3]
	ldr	r2, [fp, #-92]
	str	r2, [sp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-120]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-96]
	str	r3, [sp]
	ldr	r3, [fp, #-116]
	ldr	r2, [fp, #-100]
	ldr	r1, [fp, #-108]
	ldr	r0, [fp, #-28]
	bl	IoQueryDeviceDescription
	str	r0, [fp, #-172]
	ldr	r3, [fp, #-172]
	cmp	r3, #0
	bge	.L93
	ldr	r3, [fp, #-168]
	add	r3, r3, #1
	str	r3, [fp, #-168]
	b	.L81
.L80:
.L92:
	nop
	b	.L84
.L93:
	nop
.L84:
	ldr	r3, [fp, #-172]
	cmp	r3, #0
	blt	.L77
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	beq	.L85
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-24]
	b	.L86
.L85:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-24]
.L86:
	ldr	r3, .L94+56
	ldr	r1, [r3]
	ldr	r3, [fp, #-144]
	mov	r2, #0
	ldr	r0, [fp, #-148]
	bl	IoRegisterDeviceInterface
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	blt	.L87
	mov	r1, #1
	ldr	r0, [fp, #-144]
	bl	IoSetDeviceInterfaceState
	str	r0, [fp, #-20]
.L87:
	mov	r3, #1
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
.L77:
	ldr	r3, [fp, #-172]
	str	r3, [fp, #-8]
	ldr	r2, .L94+32
	ldr	r3, [fp, #-172]
	str	r3, [r2]
	mov	r1, #0
	ldr	r0, [fp, #-180]
	bl	IofCompleteRequest
	ldr	r3, [fp, #-172]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L95:
	.align	2
.L94:
	.word	DiskController
	.word	FloppyDiskPeripheral
	.word	s
	.word	NP
	.word	compRegistered
	.word	259
	.word	Executive
	.word	KernelMode
	.word	myStatus
	.word	3080
	.word	461832
	.word	461835
	.word	MaximumInterfaceType
	.word	FlConfigCallBack
	.word	MOUNTDEV_MOUNTED_DEVICE_GUID
	.size	FloppyStartDevice, .-FloppyStartDevice
	.align	2
	.global	FloppyPnpComplete
	.syntax unified
	.arm
	.fpu softvfp
	.type	FloppyPnpComplete, %function
FloppyPnpComplete:
	@ 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, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r2, #0
	mov	r1, #1
	ldr	r0, [fp, #-16]
	bl	KeSetEvent
	mov	r3, #-1073741802
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	FloppyPnpComplete, .-FloppyPnpComplete
	.align	2
	.global	FlFdcDeviceIo
	.syntax unified
	.arm
	.fpu softvfp
	.type	FlFdcDeviceIo, %function
FlFdcDeviceIo:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-32]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-28]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-32]
	str	r3, [sp, #12]
	mov	r3, #1
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	mov	r2, #0
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-44]
	bl	IoBuildDeviceIoControlRequest
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bne	.L99
	ldr	r3, .L102
	b	.L100
.L99:
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-12]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-40]
	bl	IofCallDriver
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, .L102+4
	cmp	r3, r2
	bne	.L101
	ldr	r3, .L102+8
	ldr	r1, [r3]
	ldr	r3, .L102+12
	ldr	r2, [r3]
	mov	r3, #0
	str	r3, [sp]
	mov	r3, #0
	ldr	r0, [fp, #-32]
	bl	KeWaitForSingleObject
	ldr	r3, .L102+16
	ldr	r3, [r3]
	str	r3, [fp, #-36]
.L101:
	ldr	r3, [fp, #-36]
.L100:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L103:
	.align	2
.L102:
	.word	-1073741670
	.word	259
	.word	Suspended
	.word	KernelMode
	.word	myStatus
	.size	FlFdcDeviceIo, .-FlFdcDeviceIo
	.align	2
	.global	FloppyProcessQueuedRequests
	.syntax unified
	.arm
	.fpu softvfp
	.type	FloppyProcessQueuedRequests, %function
FloppyProcessQueuedRequests:
	@ 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	FloppyProcessQueuedRequests, .-FloppyProcessQueuedRequests
	.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, .L108
	ldr	r3, [r3]
	ldr	r2, .L108+4
	str	r3, [r2]
	ldr	r3, .L108+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L108+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L108+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L108+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L108+24
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L109:
	.align	2
.L108:
	.word	NP
	.word	s
	.word	pended
	.word	compRegistered
	.word	lowerDriverReturn
	.word	setEventCalled
	.word	customIrp
	.size	stub_driver_init, .-stub_driver_init
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-20]
	ldr	r3, .L137
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+4
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+12
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+16
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+20
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+24
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+28
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+32
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+44
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+48
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+52
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+56
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+60
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+64
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+68
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+72
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+76
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+80
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+84
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+88
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+92
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	bl	_BLAST_init
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	blt	.L128
	ldr	r3, .L137+48
	ldr	r3, [r3]
	ldr	r2, .L137+40
	str	r3, [r2]
	ldr	r3, .L137+92
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L137+92
	ldr	r3, [r3]
	ldr	r2, .L137+88
	str	r3, [r2]
	ldr	r3, .L137+88
	ldr	r3, [r3]
	ldr	r2, .L137+84
	str	r3, [r2]
	ldr	r3, .L137+84
	ldr	r3, [r3]
	ldr	r2, .L137+80
	str	r3, [r2]
	ldr	r3, .L137+80
	ldr	r3, [r3]
	ldr	r2, .L137+76
	str	r3, [r2]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, .L137+36
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L112
	ldr	r3, .L137+96
	str	r3, [fp, #-12]
	ldr	r3, .L137+36
	ldr	r2, .L137+96
	str	r2, [r3]
.L112:
	bl	stub_driver_init
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	bge	.L113
	mvn	r3, #0
	b	.L114
.L113:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	bne	.L129
	nop
.L116:
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	FloppyPnp
	str	r0, [fp, #-32]
	b	.L111
.L129:
	nop
.L117:
	mvn	r3, #0
	b	.L114
.L128:
	nop
.L111:
	ldr	r3, .L137+76
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L130
	ldr	r3, .L137+40
	ldr	r2, [r3]
	ldr	r3, .L137+48
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L131
	ldr	r3, .L137+48
	ldr	r3, [r3]
	ldr	r2, .L137+40
	str	r3, [r2]
	b	.L120
.L130:
	nop
	b	.L118
.L131:
	nop
.L118:
	ldr	r3, .L137+76
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L132
	ldr	r3, .L137+40
	ldr	r2, [r3]
	ldr	r3, .L137+68
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L133
	ldr	r3, .L137+68
	ldr	r3, [r3]
	ldr	r2, .L137+40
	str	r3, [r2]
	b	.L120
.L132:
	nop
	b	.L121
.L133:
	nop
.L121:
	ldr	r3, .L137+40
	ldr	r2, [r3]
	ldr	r3, .L137+44
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L120
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	beq	.L120
	ldr	r3, .L137+40
	ldr	r2, [r3]
	ldr	r3, .L137+60
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L134
	ldr	r3, .L137+40
	ldr	r2, [r3]
	ldr	r3, .L137+72
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L135
	ldr	r3, .L137+40
	ldr	r2, [r3]
	ldr	r3, .L137+52
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L136
	bl	errorFn
	b	.L120
.L134:
	nop
	b	.L123
.L135:
	nop
	b	.L123
.L136:
	nop
.L123:
	ldr	r3, .L137+76
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L126
	ldr	r3, [fp, #-32]
	ldr	r2, .L137+100
	cmp	r3, r2
	beq	.L120
	bl	errorFn
	b	.L120
.L126:
	ldr	r3, .L137+40
	ldr	r2, [r3]
	ldr	r3, .L137+52
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L127
	ldr	r3, [fp, #-32]
	ldr	r2, .L137+100
	cmp	r3, r2
	bne	.L120
	bl	errorFn
	b	.L120
.L127:
	ldr	r3, .L137+84
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	beq	.L120
	bl	errorFn
.L120:
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
.L114:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L138:
	.align	2
.L137:
	.word	FloppyThread
	.word	KernelMode
	.word	Suspended
	.word	Executive
	.word	DiskController
	.word	FloppyDiskPeripheral
	.word	FlConfigCallBack
	.word	MaximumInterfaceType
	.word	MOUNTDEV_MOUNTED_DEVICE_GUID
	.word	myStatus
	.word	s
	.word	UNLOADED
	.word	NP
	.word	DC
	.word	SKIP1
	.word	SKIP2
	.word	MPR1
	.word	MPR3
	.word	IPC
	.word	pended
	.word	compRegistered
	.word	lowerDriverReturn
	.word	setEventCalled
	.word	customIrp
	.word	-1073741637
	.word	259
	.size	main, .-main
	.align	2
	.global	IoBuildDeviceIoControlRequest
	.syntax unified
	.arm
	.fpu softvfp
	.type	IoBuildDeviceIoControlRequest, %function
IoBuildDeviceIoControlRequest:
	@ args = 20, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, .L145
	mov	r2, #1
	str	r2, [r3]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L144
	nop
.L141:
	ldr	r3, [fp, #-12]
	b	.L143
.L144:
	nop
.L142:
	mov	r3, #0
.L143:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L146:
	.align	2
.L145:
	.word	customIrp
	.size	IoBuildDeviceIoControlRequest, .-IoBuildDeviceIoControlRequest
	.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	.L152
	nop
.L149:
	mov	r3, #0
	b	.L151
.L152:
	nop
.L150:
	mov	r3, #-1073741823
.L151:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoDeleteSymbolicLink, .-IoDeleteSymbolicLink
	.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	.L158
	nop
.L155:
	mov	r3, #0
	b	.L157
.L158:
	nop
.L156:
	mov	r3, #-1073741823
.L157:
	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	.L164
	nop
.L161:
	mov	r3, #0
	b	.L163
.L164:
	nop
.L162:
	mov	r3, #-1073741808
.L163:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoRegisterDeviceInterface, .-IoRegisterDeviceInterface
	.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]
	str	r1, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L170
	nop
.L167:
	mov	r3, #0
	b	.L169
.L170:
	nop
.L168:
	mov	r3, #-1073741823
.L169:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	IoSetDeviceInterfaceState, .-IoSetDeviceInterfaceState
	.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, .L175
	ldr	r2, [r3]
	ldr	r3, .L175+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L172
	ldr	r3, .L175+8
	ldr	r3, [r3]
	ldr	r2, .L175
	str	r3, [r2]
	pop	{fp, pc}
.L172:
	bl	errorFn
	nop
	pop	{fp, pc}
.L176:
	.align	2
.L175:
	.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, #-24]
	ldr	r3, .L195
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L178
	ldr	r2, [fp, #-24]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-32]
	bl	FloppyPnpComplete
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #-1073741802
	bne	.L178
	bl	stubMoreProcessingRequired
.L178:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L193
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	bne	.L194
	b	.L192
.L193:
	nop
.L180:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L184
.L192:
.L182:
	mov	r3, #-1073741823
	str	r3, [fp, #-28]
	b	.L184
.L194:
	nop
.L183:
	ldr	r3, .L195+4
	str	r3, [fp, #-28]
	nop
.L184:
	ldr	r3, .L195+8
	ldr	r2, [r3]
	ldr	r3, .L195+12
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L185
	ldr	r3, .L195+16
	ldr	r3, [r3]
	ldr	r2, .L195+8
	str	r3, [r2]
	ldr	r2, .L195+20
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L186
.L185:
	ldr	r3, .L195+8
	ldr	r2, [r3]
	ldr	r3, .L195+24
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L187
	ldr	r3, [fp, #-28]
	ldr	r2, .L195+4
	cmp	r3, r2
	bne	.L188
	ldr	r3, .L195+28
	ldr	r3, [r3]
	ldr	r2, .L195+8
	str	r3, [r2]
	ldr	r2, .L195+20
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L186
.L188:
	ldr	r3, .L195+12
	ldr	r3, [r3]
	ldr	r2, .L195+8
	str	r3, [r2]
	ldr	r2, .L195+20
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L186
.L187:
	ldr	r3, .L195+8
	ldr	r2, [r3]
	ldr	r3, .L195+32
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L189
	ldr	r3, .L195+36
	ldr	r3, [r3]
	ldr	r2, .L195+8
	str	r3, [r2]
	ldr	r2, .L195+20
	ldr	r3, [fp, #-28]
	str	r3, [r2]
	b	.L186
.L189:
	bl	errorFn
.L186:
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L196:
	.align	2
.L195:
	.word	compRegistered
	.word	259
	.word	s
	.word	NP
	.word	IPC
	.word	lowerDriverReturn
	.word	MPR1
	.word	MPR3
	.word	SKIP1
	.word	SKIP2
	.size	IofCallDriver, .-IofCallDriver
	.align	2
	.global	IofCompleteRequest
	.syntax unified
	.arm
	.fpu softvfp
	.type	IofCompleteRequest, %function
IofCompleteRequest:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, .L201
	ldr	r2, [r3]
	ldr	r3, .L201+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L198
	ldr	r3, .L201+8
	ldr	r3, [r3]
	ldr	r2, .L201
	str	r3, [r2]
	b	.L197
.L198:
	bl	errorFn
	nop
.L197:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L202:
	.align	2
.L201:
	.word	s
	.word	NP
	.word	DC
	.size	IofCompleteRequest, .-IofCompleteRequest
	.align	2
	.global	KeSetEvent
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeSetEvent, %function
KeSetEvent:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, .L205
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L206:
	.align	2
.L205:
	.word	setEventCalled
	.size	KeSetEvent, .-KeSetEvent
	.align	2
	.global	KeWaitForSingleObject
	.syntax unified
	.arm
	.fpu softvfp
	.type	KeWaitForSingleObject, %function
KeWaitForSingleObject:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	ldr	r3, .L219
	ldr	r2, [r3]
	ldr	r3, .L219+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L216
	ldr	r3, .L219+8
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L217
	ldr	r3, .L219+12
	ldr	r3, [r3]
	ldr	r2, .L219
	str	r3, [r2]
	ldr	r3, .L219+8
	mov	r2, #0
	str	r2, [r3]
	b	.L210
.L216:
	nop
	b	.L208
.L217:
	nop
.L208:
	ldr	r3, .L219+16
	ldr	r3, [r3]
	cmp	r3, #1
	bne	.L211
	ldr	r3, .L219+12
	ldr	r3, [r3]
	ldr	r2, .L219
	str	r3, [r2]
	ldr	r3, .L219+16
	mov	r2, #0
	str	r2, [r3]
	b	.L210
.L211:
	ldr	r3, .L219
	ldr	r2, [r3]
	ldr	r3, .L219+4
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L210
	bl	errorFn
.L210:
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L218
	nop
.L213:
	mov	r3, #0
	b	.L215
.L218:
	nop
.L214:
	mov	r3, #-1073741823
.L215:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L220:
	.align	2
.L219:
	.word	s
	.word	MPR3
	.word	setEventCalled
	.word	NP
	.word	customIrp
	.size	KeWaitForSingleObject, .-KeWaitForSingleObject
	.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]
	str	r3, [fp, #-28]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L226
	nop
.L223:
	mov	r3, #0
	b	.L225
.L226:
	nop
.L224:
	mov	r3, #-1073741823
.L225:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ObReferenceObjectByHandle, .-ObReferenceObjectByHandle
	.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	.L232
	nop
.L229:
	mov	r3, #0
	b	.L231
.L232:
	nop
.L230:
	mov	r3, #-1073741823
.L231:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	PsCreateSystemThread, .-PsCreateSystemThread
	.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	.L238
	nop
.L235:
	mov	r3, #0
	b	.L237
.L238:
	nop
.L236:
	mov	r3, #-1073741823
.L237:
	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
