	.file	"833874.c"
	.intel_syntax noprefix
	.text
	.globl	current_execution_context
	.bss
	.align 4
	.type	current_execution_context, @object
	.size	current_execution_context, 4
current_execution_context:
	.zero	4
	.globl	_ddv_module_init
	.align 8
	.type	_ddv_module_init, @object
	.size	_ddv_module_init, 8
_ddv_module_init:
	.zero	8
	.globl	_ddv_module_exit
	.align 8
	.type	_ddv_module_exit, @object
	.size	_ddv_module_exit, 8
_ddv_module_exit:
	.zero	8
	.text
	.globl	pthread_create
	.type	pthread_create, @function
pthread_create:
.LFB0:
	.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 -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	QWORD PTR -24[rbp], rdx
	mov	QWORD PTR -32[rbp], rcx
	mov	eax, 0
	call	nondet_pthread_t@PLT
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	rdx
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	pthread_create, .-pthread_create
	.globl	jiffies
	.bss
	.align 8
	.type	jiffies, @object
	.size	jiffies, 8
jiffies:
	.zero	8
	.globl	fixed_cdev
	.align 32
	.type	fixed_cdev, @object
	.size	fixed_cdev, 240
fixed_cdev:
	.zero	240
	.globl	fixed_cdev_used
	.align 4
	.type	fixed_cdev_used, @object
	.size	fixed_cdev_used, 4
fixed_cdev_used:
	.zero	4
	.globl	number_cdev_registered
	.align 2
	.type	number_cdev_registered, @object
	.size	number_cdev_registered, 2
number_cdev_registered:
	.zero	2
	.globl	cdev_registered
	.align 32
	.type	cdev_registered, @object
	.size	cdev_registered, 1120
cdev_registered:
	.zero	1120
	.text
	.globl	call_cdev_functions
	.type	call_cdev_functions, @function
call_cdev_functions:
.LFB1:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movzx	eax, WORD PTR number_cdev_registered[rip]
	test	ax, ax
	je	.L47
	mov	eax, 0
	call	nondet_ushort@PLT
	mov	WORD PTR -52[rbp], ax
	movzx	eax, WORD PTR -52[rbp]
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	js	.L6
	movzx	eax, WORD PTR number_cdev_registered[rip]
	cwde
	cmp	DWORD PTR -44[rbp], eax
	jge	.L7
	mov	DWORD PTR -48[rbp], 1
	jmp	.L8
.L7:
	mov	DWORD PTR -48[rbp], 0
	jmp	.L8
.L6:
	mov	DWORD PTR -48[rbp], 0
.L8:
	mov	eax, DWORD PTR -48[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	eax, 0
	call	nondet_ushort@PLT
	mov	WORD PTR -50[rbp], ax
	movzx	eax, WORD PTR -50[rbp]
	cmp	eax, 26
	ja	.L48
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L11[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L11[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L11:
	.long	.L37-.L11
	.long	.L36-.L11
	.long	.L49-.L11
	.long	.L34-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L30-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L26-.L11
	.long	.L49-.L11
	.long	.L24-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.long	.L49-.L11
	.text
.L37:
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 8[rax]
	test	rax, rax
	je	.L50
	mov	eax, 0
	call	nondet_loff_t@PLT
	mov	QWORD PTR -24[rbp], rax
	mov	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	r8, QWORD PTR 8[rax]
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	lea	rdx, cdev_registered[rip]
	add	rax, rdx
	lea	rdi, 8[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, eax
	mov	rsi, rcx
	call	r8
	jmp	.L50
.L36:
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 16[rax]
	test	rax, rax
	je	.L51
	mov	eax, 0
	call	nondet_char@PLT
	mov	BYTE PTR -53[rbp], al
	mov	eax, 0
	call	nondet_size_t@PLT
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	r8, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	lea	rdx, cdev_registered[rip]
	add	rax, rdx
	lea	rdi, 8[rax]
	lea	rcx, -24[rbp]
	mov	edx, DWORD PTR -32[rbp]
	lea	rax, -53[rbp]
	mov	rsi, rax
	call	r8
	jmp	.L51
.L34:
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 24[rax]
	test	rax, rax
	je	.L52
	mov	eax, 0
	call	nondet_char@PLT
	mov	BYTE PTR -53[rbp], al
	mov	eax, 0
	call	nondet_size_t@PLT
	mov	DWORD PTR -32[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	r8, QWORD PTR 24[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	lea	rdx, cdev_registered[rip]
	add	rax, rdx
	lea	rdi, 8[rax]
	lea	rcx, -24[rbp]
	mov	edx, DWORD PTR -32[rbp]
	lea	rax, -53[rbp]
	mov	rsi, rax
	call	r8
	jmp	.L52
.L30:
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 48[rax]
	test	rax, rax
	je	.L53
	mov	eax, 0
	call	nondet_uint@PLT
	mov	DWORD PTR -36[rbp], eax
	mov	eax, 0
	call	nondet_ulong@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	r8, QWORD PTR 48[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	lea	rdx, cdev_registered[rip]
	add	rax, rdx
	lea	rsi, 8[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	lea	rdx, 64[rax]
	lea	rax, cdev_registered[rip]
	lea	rdi, [rdx+rax]
	mov	rdx, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	rcx, rdx
	mov	edx, eax
	call	r8
	jmp	.L53
.L26:
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 80[rax]
	test	rax, rax
	je	.L54
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip+104]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	jne	.L54
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR 80[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	sub	rax, rcx
	sal	rax, 4
	lea	rcx, cdev_registered[rip]
	add	rax, rcx
	lea	rcx, 8[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rsi, eax
	mov	rax, rsi
	sal	rax, 3
	sub	rax, rsi
	sal	rax, 4
	lea	rsi, 64[rax]
	lea	rax, cdev_registered[rip]
	add	rax, rsi
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	jne	.L54
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip+104]
	mov	DWORD PTR [rdx+rax], 1
	jmp	.L54
.L24:
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rax, QWORD PTR 96[rax]
	test	rax, rax
	je	.L55
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip+104]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	je	.L55
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rax, QWORD PTR 8[rax]
	mov	rdx, QWORD PTR 96[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 3
	sub	rax, rcx
	sal	rax, 4
	lea	rcx, cdev_registered[rip]
	add	rax, rcx
	lea	rcx, 8[rax]
	mov	eax, DWORD PTR -44[rbp]
	movsx	rsi, eax
	mov	rax, rsi
	sal	rax, 3
	sub	rax, rsi
	sal	rax, 4
	lea	rsi, 64[rax]
	lea	rax, cdev_registered[rip]
	add	rax, rsi
	mov	rsi, rcx
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	jne	.L55
	mov	eax, DWORD PTR -44[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	sub	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, cdev_registered[rip+104]
	mov	DWORD PTR [rdx+rax], 0
	jmp	.L55
.L48:
	nop
	jmp	.L3
.L49:
	nop
	jmp	.L3
.L50:
	nop
	jmp	.L3
.L51:
	nop
	jmp	.L3
.L52:
	nop
	jmp	.L3
.L53:
	nop
	jmp	.L3
.L54:
	nop
	jmp	.L3
.L55:
	nop
	jmp	.L3
.L47:
	nop
.L3:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L46
	call	__stack_chk_fail@PLT
.L46:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	call_cdev_functions, .-call_cdev_functions
	.globl	pthread_mutex_init
	.type	pthread_mutex_init, @function
pthread_mutex_init:
.LFB10:
	.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	BYTE PTR -1[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	movzx	edx, BYTE PTR -1[rbp]
	mov	BYTE PTR [rax], dl
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	pthread_mutex_init, .-pthread_mutex_init
	.globl	pthread_mutex_destroy
	.type	pthread_mutex_destroy, @function
pthread_mutex_destroy:
.LFB11:
	.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
.LFE11:
	.size	pthread_mutex_destroy, .-pthread_mutex_destroy
	.globl	pthread_mutex_lock
	.type	pthread_mutex_lock, @function
pthread_mutex_lock:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	xor	eax, 1
	movzx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], 1
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	pthread_mutex_lock, .-pthread_mutex_lock
	.section	.rodata
	.align 8
.LC0:
	.string	"pthread_mutex_unlock without lock"
	.text
	.globl	pthread_mutex_unlock
	.type	pthread_mutex_unlock, @function
pthread_mutex_unlock:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	rsi, .LC0[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	BYTE PTR [rax], 0
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	pthread_mutex_unlock, .-pthread_mutex_unlock
	.globl	number_genhd_registered
	.bss
	.align 2
	.type	number_genhd_registered, @object
	.size	number_genhd_registered, 2
number_genhd_registered:
	.zero	2
	.globl	number_fixed_genhd_used
	.align 2
	.type	number_fixed_genhd_used, @object
	.size	number_fixed_genhd_used, 2
number_fixed_genhd_used:
	.zero	2
	.globl	fixed_gendisk
	.align 32
	.type	fixed_gendisk, @object
	.size	fixed_gendisk, 1520
fixed_gendisk:
	.zero	1520
	.globl	genhd_registered
	.align 32
	.type	genhd_registered, @object
	.size	genhd_registered, 2480
genhd_registered:
	.zero	2480
	.globl	registered_pci_driver
	.align 32
	.type	registered_pci_driver, @object
	.size	registered_pci_driver, 448
registered_pci_driver:
	.zero	448
	.globl	registered_irq
	.align 32
	.type	registered_irq, @object
	.size	registered_irq, 256
registered_irq:
	.zero	256
	.globl	number_tasklet_registered
	.align 2
	.type	number_tasklet_registered, @object
	.size	number_tasklet_registered, 2
number_tasklet_registered:
	.zero	2
	.globl	tasklet_registered
	.align 32
	.type	tasklet_registered, @object
	.size	tasklet_registered, 160
tasklet_registered:
	.zero	160
	.globl	number_timer_registered
	.align 2
	.type	number_timer_registered, @object
	.size	number_timer_registered, 2
number_timer_registered:
	.zero	2
	.globl	timer_registered
	.align 32
	.type	timer_registered, @object
	.size	timer_registered, 40
timer_registered:
	.zero	40
	.globl	shared_workqueue
	.align 32
	.type	shared_workqueue, @object
	.size	shared_workqueue, 80
shared_workqueue:
	.zero	80
	.globl	kernel_lock
	.align 8
	.type	kernel_lock, @object
	.size	kernel_lock, 8
kernel_lock:
	.zero	8
	.text
	.globl	init_kernel
	.type	init_kernel, @function
init_kernel:
.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, 16
	lea	rdi, kernel_lock[rip]
	call	spin_lock_init
	mov	DWORD PTR -4[rbp], 0
	jmp	.L65
.L66:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, shared_workqueue[rip]
	mov	QWORD PTR [rdx+rax], 0
	add	DWORD PTR -4[rbp], 1
.L65:
	cmp	DWORD PTR -4[rbp], 9
	jle	.L66
	mov	DWORD PTR -4[rbp], 0
	jmp	.L67
.L68:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip]
	mov	QWORD PTR [rdx+rax], 0
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip+8]
	mov	WORD PTR [rdx+rax], 0
	add	DWORD PTR -4[rbp], 1
.L67:
	cmp	DWORD PTR -4[rbp], 9
	jle	.L68
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	init_kernel, .-init_kernel
	.type	ddv_2, @function
ddv_2:
.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	QWORD PTR -24[rbp], rdi
.L81:
	mov	eax, 0
	call	nondet_ushort@PLT
	mov	WORD PTR -2[rbp], ax
	movzx	eax, WORD PTR -2[rbp]
	cmp	eax, 5
	ja	.L84
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, .L73[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L73[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L73:
	.long	.L84-.L73
	.long	.L77-.L73
	.long	.L76-.L73
	.long	.L75-.L73
	.long	.L74-.L73
	.long	.L72-.L73
	.text
.L77:
	mov	DWORD PTR current_execution_context[rip], 2
	mov	eax, 0
	call	call_timer_functions@PLT
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L78
.L76:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_interrupt_handler
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L78
.L75:
	mov	DWORD PTR current_execution_context[rip], 1
	call	call_shared_workqueue_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L78
.L74:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_tasklet_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L78
.L72:
	mov	DWORD PTR current_execution_context[rip], 1
	mov	eax, 0
	call	call_pci_functions@PLT
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L78
.L84:
	nop
.L78:
	cmp	WORD PTR -2[rbp], 0
	je	.L85
	jmp	.L81
.L85:
	nop
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	ddv_2, .-ddv_2
	.globl	ddv
	.type	ddv, @function
ddv:
.LFB16:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, -16[rbp]
	mov	ecx, 0
	lea	rdx, ddv_2[rip]
	mov	esi, 0
	mov	rdi, rax
	call	pthread_create
.L89:
	mov	DWORD PTR current_execution_context[rip], 1
	call	call_cdev_functions
	mov	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L93
	jmp	.L89
.L93:
	nop
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L91
	call	__stack_chk_fail@PLT
.L91:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	ddv, .-ddv
	.globl	call_ddv
	.type	call_ddv, @function
call_ddv:
.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, 16
	mov	DWORD PTR current_execution_context[rip], 1
	call	init_kernel
	mov	rax, QWORD PTR _ddv_module_init[rip]
	call	rax
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L95
	mov	eax, -1
	jmp	.L96
.L95:
	call	ddv
	mov	DWORD PTR current_execution_context[rip], 1
	mov	rax, QWORD PTR _ddv_module_exit[rip]
	call	rax
	mov	eax, 0
.L96:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	call_ddv, .-call_ddv
	.globl	register_blkdev
	.type	register_blkdev, @function
register_blkdev:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	register_blkdev, .-register_blkdev
	.globl	unregister_blkdev
	.type	unregister_blkdev, @function
unregister_blkdev:
.LFB19:
	.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	QWORD PTR -16[rbp], rsi
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	unregister_blkdev, .-unregister_blkdev
	.globl	alloc_disk
	.type	alloc_disk, @function
alloc_disk:
.LFB20:
	.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 -20[rbp], edi
	movzx	eax, WORD PTR number_fixed_genhd_used[rip]
	cmp	ax, 9
	jg	.L102
	movzx	eax, WORD PTR number_fixed_genhd_used[rip]
	cwde
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, fixed_gendisk[rip]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	DWORD PTR 8[rax], edx
	movzx	eax, WORD PTR number_fixed_genhd_used[rip]
	add	eax, 1
	mov	WORD PTR number_fixed_genhd_used[rip], ax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L103
.L102:
	mov	eax, 0
.L103:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	alloc_disk, .-alloc_disk
	.globl	add_disk
	.type	add_disk, @function
add_disk:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cmp	ax, 9
	jg	.L107
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 5
	sub	rax, rdx
	sal	rax, 3
	mov	rcx, rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	mov	edi, 32
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 5
	sub	rax, rdx
	sal	rax, 3
	mov	rcx, rax
	lea	rdx, genhd_registered[rip+16]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 5
	sub	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	lea	rax, genhd_registered[rip+16]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR 8[rax], rdx
	movzx	eax, WORD PTR number_genhd_registered[rip]
	add	eax, 1
	mov	WORD PTR number_genhd_registered[rip], ax
	nop
.L107:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	add_disk, .-add_disk
	.globl	del_gendisk
	.type	del_gendisk, @function
del_gendisk:
.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 -24[rbp], rdi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L109
.L111:
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 5
	sub	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	lea	rax, genhd_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	cmp	rdx, rax
	jne	.L110
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 5
	sub	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	lea	rax, genhd_registered[rip]
	mov	QWORD PTR [rdx+rax], 0
.L110:
	add	DWORD PTR -4[rbp], 1
.L109:
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	cmp	DWORD PTR -4[rbp], eax
	jl	.L111
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	del_gendisk, .-del_gendisk
	.globl	call_interrupt_handler
	.type	call_interrupt_handler, @function
call_interrupt_handler:
.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	WORD PTR -18[rbp], ax
	cmp	WORD PTR -18[rbp], 15
	setbe	al
	movzx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	movzx	eax, WORD PTR -18[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, registered_irq[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L117
	movzx	eax, WORD PTR -18[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, registered_irq[rip]
	mov	r8, QWORD PTR [rdx+rax]
	movzx	eax, WORD PTR -18[rbp]
	cdqe
	sal	rax, 4
	mov	rdx, rax
	lea	rax, registered_irq[rip+8]
	mov	rcx, QWORD PTR [rdx+rax]
	movzx	eax, WORD PTR -18[rbp]
	lea	rdx, -16[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	r8
	nop
.L117:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L116
	call	__stack_chk_fail@PLT
.L116:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	call_interrupt_handler, .-call_interrupt_handler
	.globl	fixed_request_queue
	.bss
	.align 32
	.type	fixed_request_queue, @object
	.size	fixed_request_queue, 880
fixed_request_queue:
	.zero	880
	.globl	number_request_queue_used
	.align 4
	.type	number_request_queue_used, @object
	.size	number_request_queue_used, 4
number_request_queue_used:
	.zero	4
	.text
	.globl	get_fixed_request_queue
	.type	get_fixed_request_queue, @function
get_fixed_request_queue:
.LFB24:
	.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 number_request_queue_used[rip]
	cmp	eax, 9
	jg	.L119
	mov	eax, DWORD PTR number_request_queue_used[rip]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR number_request_queue_used[rip]
	add	eax, 1
	mov	DWORD PTR number_request_queue_used[rip], eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, fixed_request_queue[rip]
	add	rax, rdx
	jmp	.L120
.L119:
	mov	eax, 0
.L120:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	get_fixed_request_queue, .-get_fixed_request_queue
	.globl	blk_init_queue
	.type	blk_init_queue, @function
blk_init_queue:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L122
	call	get_fixed_request_queue
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR 64[rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 80[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L123
.L122:
	mov	eax, 0
.L123:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	blk_init_queue, .-blk_init_queue
	.globl	blk_alloc_queue
	.type	blk_alloc_queue, @function
blk_alloc_queue:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L125
	call	get_fixed_request_queue
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 8[rax], 0
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 80[rax], 1
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L126
.L125:
	mov	eax, 0
.L126:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	blk_alloc_queue, .-blk_alloc_queue
	.globl	blk_queue_make_request
	.type	blk_queue_make_request, @function
blk_queue_make_request:
.LFB27:
	.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	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR 8[rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	blk_queue_make_request, .-blk_queue_make_request
	.globl	end_request
	.type	end_request, @function
end_request:
.LFB28:
	.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 -24[rbp], rdi
	mov	DWORD PTR -28[rbp], esi
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR 72[rax]
	mov	rax, QWORD PTR 56[rax]
	mov	eax, DWORD PTR 76[rax]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 5
	sub	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	lea	rax, genhd_registered[rip+240]
	mov	DWORD PTR [rdx+rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	end_request, .-end_request
	.globl	blk_queue_hardsect_size
	.type	blk_queue_hardsect_size, @function
blk_queue_hardsect_size:
.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
	mov	eax, esi
	mov	WORD PTR -12[rbp], ax
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, WORD PTR -12[rbp]
	mov	WORD PTR 72[rax], dx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	blk_queue_hardsect_size, .-blk_queue_hardsect_size
	.globl	blk_cleanup_queue
	.type	blk_cleanup_queue, @function
blk_cleanup_queue:
.LFB30:
	.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	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 80[rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	blk_cleanup_queue, .-blk_cleanup_queue
	.globl	applicom_pci_devnames
	.section	.rodata
.LC1:
	.string	"PCI board"
.LC2:
	.string	"PCI2000IBS / PCI2000CAN"
.LC3:
	.string	"PCI2000PFB"
	.section	.data.rel.local,"aw"
	.align 16
	.type	applicom_pci_devnames, @object
	.size	applicom_pci_devnames, 24
applicom_pci_devnames:
	.quad	.LC1
	.quad	.LC2
	.quad	.LC3
	.globl	applicom_pci_tbl
	.data
	.align 32
	.type	applicom_pci_tbl, @object
	.size	applicom_pci_tbl, 128
applicom_pci_tbl:
	.long	5001
	.long	1
	.long	-1
	.long	-1
	.long	0
	.long	0
	.quad	0
	.long	5001
	.long	2
	.long	-1
	.long	-1
	.long	0
	.long	0
	.quad	0
	.long	5001
	.long	3
	.long	-1
	.long	-1
	.long	0
	.long	0
	.quad	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.quad	0
	.globl	_ddv_module_author
	.align 32
	.type	_ddv_module_author, @object
	.size	_ddv_module_author, 41
_ddv_module_author:
	.string	"David Woodhouse & Applicom International"
	.globl	_ddv_module_description
	.align 32
	.type	_ddv_module_description, @object
	.size	_ddv_module_description, 34
_ddv_module_description:
	.string	"Driver for Applicom Profibus card"
	.globl	_ddv_module_license
	.type	_ddv_module_license, @object
	.size	_ddv_module_license, 4
_ddv_module_license:
	.string	"GPL"
	.globl	_ddv_module_supported_device
	.type	_ddv_module_supported_device, @object
	.size	_ddv_module_supported_device, 3
_ddv_module_supported_device:
	.string	"ac"
	.globl	apbs
	.bss
	.align 32
	.type	apbs, @object
	.size	apbs, 384
apbs:
	.zero	384
	.globl	irq
	.align 4
	.type	irq, @object
	.size	irq, 4
irq:
	.zero	4
	.globl	mem
	.align 8
	.type	mem, @object
	.size	mem, 8
mem:
	.zero	8
	.globl	_ddv_module_param_irq
	.data
	.align 16
	.type	_ddv_module_param_irq, @object
	.size	_ddv_module_param_irq, 26
_ddv_module_param_irq:
	.string	"IRQ of the Applicom board"
	.globl	_ddv_module_param_mem
	.align 32
	.type	_ddv_module_param_mem, @object
	.size	_ddv_module_param_mem, 40
_ddv_module_param_mem:
	.string	"Shared Memory Address of Applicom board"
	.globl	numboards
	.bss
	.align 4
	.type	numboards, @object
	.size	numboards, 4
numboards:
	.zero	4
	.globl	Dummy
	.type	Dummy, @object
	.size	Dummy, 1
Dummy:
	.zero	1
	.globl	FlagSleepRec
	.data
	.align 8
	.type	FlagSleepRec, @object
	.size	FlagSleepRec, 12
FlagSleepRec:
	.long	0
	.long	0
	.long	1
	.globl	WriteErrorCount
	.bss
	.align 4
	.type	WriteErrorCount, @object
	.size	WriteErrorCount, 4
WriteErrorCount:
	.zero	4
	.globl	ReadErrorCount
	.align 4
	.type	ReadErrorCount, @object
	.size	ReadErrorCount, 4
ReadErrorCount:
	.zero	4
	.globl	DeviceErrorCount
	.align 4
	.type	DeviceErrorCount, @object
	.size	DeviceErrorCount, 4
DeviceErrorCount:
	.zero	4
	.globl	ac_fops
	.section	.data.rel.ro,"aw"
	.align 32
	.type	ac_fops, @object
	.size	ac_fops, 200
ac_fops:
	.quad	0
	.quad	no_llseek
	.quad	ac_read
	.quad	ac_write
	.quad	0
	.quad	0
	.quad	ac_ioctl
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.globl	ac_miscdev
	.section	.rodata
.LC4:
	.string	"ac"
	.section	.data.rel.local
	.align 16
	.type	ac_miscdev, @object
	.size	ac_miscdev, 24
ac_miscdev:
	.long	157
	.zero	4
	.quad	.LC4
	.quad	ac_fops
	.globl	dummy
	.bss
	.align 4
	.type	dummy, @object
	.size	dummy, 4
dummy:
	.zero	4
	.section	.rodata
	.align 8
.LC5:
	.string	"<4>Board #%d (at 0x%lx) is out of range (1 <= x <= %d).\n"
	.align 8
.LC6:
	.string	"<4>Board #%d (at 0x%lx) conflicts with previous board #%d (at 0x%lx)\n"
	.text
	.globl	ac_register_board
	.type	ac_register_board, @function
ac_register_board:
.LFB31:
	.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
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 18
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -5[rbp], al
	cmp	BYTE PTR -5[rbp], 0
	je	.L136
	mov	eax, 0
	jmp	.L137
.L136:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 19
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -4[rbp], al
	cmp	BYTE PTR -4[rbp], 85
	je	.L138
	mov	eax, 0
	jmp	.L137
.L138:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 20
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -3[rbp], al
	cmp	BYTE PTR -3[rbp], -86
	je	.L139
	mov	eax, 0
	jmp	.L137
.L139:
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 21
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -2[rbp], al
	cmp	BYTE PTR -2[rbp], -1
	je	.L140
	mov	eax, 0
	jmp	.L137
.L140:
	cmp	BYTE PTR -36[rbp], 0
	jne	.L141
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 2
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -36[rbp], al
.L141:
	cmp	BYTE PTR -36[rbp], 0
	jne	.L142
	movzx	eax, BYTE PTR -36[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, 8
	mov	esi, eax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, 0
	jmp	.L137
.L142:
	cmp	BYTE PTR -36[rbp], 8
	jbe	.L143
	movzx	eax, BYTE PTR -36[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	ecx, 8
	mov	esi, eax
	lea	rdi, .LC5[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, 0
	jmp	.L137
.L143:
	movzx	eax, BYTE PTR -36[rbp]
	sub	eax, 1
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L144
	movzx	eax, BYTE PTR -36[rbp]
	sub	eax, 1
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip]
	mov	rsi, QWORD PTR [rdx+rax]
	movzx	ecx, BYTE PTR -36[rbp]
	movzx	eax, BYTE PTR -36[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	r8, rsi
	mov	esi, eax
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, 0
	jmp	.L137
.L144:
	sub	BYTE PTR -36[rbp], 1
	movzx	eax, BYTE PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rcx, rax
	lea	rdx, apbs[rip]
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	movzx	eax, BYTE PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rcx, rax
	lea	rdx, apbs[rip+8]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	movzx	eax, BYTE PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 16[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	mov	rdi, rax
	call	init_waitqueue_head
	movzx	eax, BYTE PTR -36[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	add	rax, 8
	mov	rdi, rax
	call	spin_lock_init
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 1023
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -1[rbp], al
	movzx	eax, BYTE PTR -1[rbp]
	mov	BYTE PTR -6[rbp], al
	mov	eax, DWORD PTR numboards[rip]
	add	eax, 1
	mov	DWORD PTR numboards[rip], eax
	movzx	eax, BYTE PTR -36[rbp]
	add	eax, 1
.L137:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	ac_register_board, .-ac_register_board
	.globl	applicom_exit
	.type	applicom_exit, @function
applicom_exit:
.LFB32:
	.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
	lea	rdi, ac_miscdev[rip]
	call	misc_deregister@PLT
	mov	DWORD PTR -4[rbp], 0
	jmp	.L146
.L150:
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L152
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+32]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L149
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+32]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rsi, dummy[rip]
	mov	edi, eax
	call	free_irq
.L149:
	mov	edx, DWORD PTR -4[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	iounmap@PLT
	jmp	.L148
.L152:
	nop
.L148:
	add	DWORD PTR -4[rbp], 1
.L146:
	cmp	DWORD PTR -4[rbp], 7
	jbe	.L150
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	applicom_exit, .-applicom_exit
	.section	.rodata
	.align 8
.LC7:
	.string	"<6>Applicom driver: $Id: ac.c,v 1.30 2000/03/22 16:03:57 dwmw2 Exp $\n"
	.align 8
.LC8:
	.string	"<6>ac.o: Failed to ioremap PCI memory space at 0x%llx\n"
	.align 8
.LC9:
	.string	"<6>Applicom %s found at mem 0x%llx, irq %d\n"
	.align 8
.LC10:
	.string	"<6>ac.o: PCI Applicom device doesn't have correct signature.\n"
.LC11:
	.string	"Applicom PCI"
	.align 8
.LC12:
	.string	"<6>Could not allocate IRQ %d for PCI Applicom device.\n"
	.align 8
.LC13:
	.string	"<6>ac.o: No PCI boards found.\n"
	.align 8
.LC14:
	.string	"<6>ac.o: For an ISA board you must supply memory and irq parameters.\n"
	.align 8
.LC15:
	.string	"<6>ac.o: Failed to ioremap the ISA card's memory space (slot #%d)\n"
	.align 8
.LC16:
	.string	"<5>Applicom ISA card found at mem 0x%lx, irq %d\n"
.LC17:
	.string	"Applicom ISA"
	.align 8
.LC18:
	.string	"<4>Could not allocate IRQ %d for ISA Applicom device.\n"
	.align 8
.LC19:
	.string	"<4>ac.o: No valid ISA Applicom boards found at mem 0x%lx\n"
	.align 8
.LC20:
	.string	"<4>ac.o: Unable to register misc device\n"
	.align 8
.LC21:
	.string	"<6>Applicom board %d: %s, PROM V%d.%d"
.LC22:
	.string	" S/N %d\n"
.LC23:
	.string	"\n"
	.text
	.globl	applicom_init
	.type	applicom_init, @function
applicom_init:
.LFB33:
	.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	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -92[rbp], 0
	mov	QWORD PTR -64[rbp], 0
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printk@PLT
	mov	DWORD PTR numboards[rip], 0
.L165:
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rax
	mov	edi, 16711680
	call	pci_get_class
	mov	QWORD PTR -64[rbp], rax
	cmp	QWORD PTR -64[rbp], 0
	je	.L197
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 12[rax]
	cmp	ax, 5001
	jne	.L198
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 14[rax]
	cmp	ax, 3
	ja	.L199
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 14[rax]
	test	ax, ax
	je	.L200
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	pci_enable_device
	mov	DWORD PTR -84[rbp], eax
	cmp	DWORD PTR -84[rbp], 0
	je	.L160
	mov	eax, -5
	jmp	.L194
.L160:
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	esi, 2048
	mov	rdi, rax
	call	ioremap@PLT
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jne	.L162
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rsi, rax
	lea	rdi, .LC8[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	pci_disable_device@PLT
	mov	eax, -5
	jmp	.L194
.L162:
	mov	rax, QWORD PTR -64[rbp]
	mov	ecx, DWORD PTR 40[rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -64[rbp]
	movzx	eax, WORD PTR 14[rax]
	movzx	eax, ax
	sub	eax, 1
	cdqe
	lea	rsi, 0[0+rax*8]
	lea	rax, applicom_pci_devnames[rip]
	mov	rax, QWORD PTR [rsi+rax]
	mov	rsi, rax
	lea	rdi, .LC9[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR 56[rax]
	mov	rcx, QWORD PTR -56[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	ac_register_board
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 0
	jne	.L163
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	iounmap@PLT
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	pci_disable_device@PLT
	jmp	.L157
.L163:
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 40[rax]
	lea	r8, dummy[rip]
	lea	rcx, .LC11[rip]
	mov	edx, 128
	lea	rsi, ac_interrupt[rip]
	mov	edi, eax
	call	request_irq
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	je	.L164
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR 40[rax]
	mov	esi, eax
	lea	rdi, .LC12[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	iounmap@PLT
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	pci_disable_device@PLT
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 1
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	QWORD PTR [rdx+rax], 0
	jmp	.L157
.L164:
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 1
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1022
	mov	rsi, rax
	mov	edi, 64
	call	writeb@PLT
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR 40[rax]
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 1
	mov	ecx, edx
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+32]
	mov	QWORD PTR [rdx+rax], rcx
	jmp	.L165
.L198:
	nop
	jmp	.L165
.L199:
	nop
	jmp	.L165
.L200:
	nop
.L157:
	jmp	.L165
.L197:
	nop
	mov	rax, QWORD PTR mem[rip]
	test	rax, rax
	je	.L201
	mov	eax, DWORD PTR irq[rip]
	test	eax, eax
	jne	.L168
	jmp	.L167
.L201:
	nop
.L167:
	mov	eax, DWORD PTR numboards[rip]
	test	eax, eax
	jne	.L202
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printk@PLT
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -6
	jmp	.L194
.L168:
	mov	DWORD PTR -96[rbp], 0
	jmp	.L171
.L178:
	mov	eax, DWORD PTR -96[rbp]
	sal	eax, 11
	movsx	rdx, eax
	mov	rax, QWORD PTR mem[rip]
	add	rax, rdx
	mov	esi, 2048
	mov	rdi, rax
	call	ioremap@PLT
	mov	QWORD PTR -56[rbp], rax
	cmp	QWORD PTR -56[rbp], 0
	jne	.L172
	mov	eax, DWORD PTR -96[rbp]
	add	eax, 1
	mov	esi, eax
	lea	rdi, .LC15[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L173
.L172:
	mov	eax, DWORD PTR -96[rbp]
	add	eax, 1
	movzx	edx, al
	mov	eax, DWORD PTR -96[rbp]
	sal	eax, 11
	movsx	rcx, eax
	mov	rax, QWORD PTR mem[rip]
	add	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rsi, rax
	mov	rdi, rcx
	call	ac_register_board
	mov	DWORD PTR -80[rbp], eax
	cmp	DWORD PTR -80[rbp], 0
	jne	.L174
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	iounmap@PLT
	jmp	.L173
.L174:
	mov	eax, DWORD PTR irq[rip]
	mov	edx, DWORD PTR -96[rbp]
	sal	edx, 11
	movsx	rcx, edx
	mov	rdx, QWORD PTR mem[rip]
	add	rcx, rdx
	mov	edx, eax
	mov	rsi, rcx
	lea	rdi, .LC16[rip]
	mov	eax, 0
	call	printk@PLT
	cmp	DWORD PTR -92[rbp], 0
	jne	.L175
	mov	eax, DWORD PTR irq[rip]
	lea	r8, dummy[rip]
	lea	rcx, .LC17[rip]
	mov	edx, 128
	lea	rsi, ac_interrupt[rip]
	mov	edi, eax
	call	request_irq
	mov	DWORD PTR -72[rbp], eax
	cmp	DWORD PTR -72[rbp], 0
	je	.L176
	mov	eax, DWORD PTR irq[rip]
	mov	esi, eax
	lea	rdi, .LC18[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	iounmap@PLT
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 1
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	QWORD PTR [rdx+rax], 0
	jmp	.L177
.L176:
	mov	edx, DWORD PTR irq[rip]
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 1
	mov	ecx, edx
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+32]
	mov	QWORD PTR [rdx+rax], rcx
	jmp	.L177
.L175:
	mov	eax, DWORD PTR -80[rbp]
	sub	eax, 1
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+32]
	mov	QWORD PTR [rdx+rax], 0
.L177:
	add	DWORD PTR -92[rbp], 1
.L173:
	add	DWORD PTR -96[rbp], 1
.L171:
	cmp	DWORD PTR -96[rbp], 3
	jle	.L178
	cmp	DWORD PTR -92[rbp], 0
	jne	.L203
	mov	rax, QWORD PTR mem[rip]
	mov	rsi, rax
	lea	rdi, .LC19[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L170
.L202:
	nop
	jmp	.L170
.L203:
	nop
.L170:
	lea	rdi, FlagSleepRec[rip]
	call	init_waitqueue_head
	mov	DWORD PTR WriteErrorCount[rip], 0
	mov	DWORD PTR ReadErrorCount[rip], 0
	mov	DWORD PTR DeviceErrorCount[rip], 0
	mov	eax, DWORD PTR numboards[rip]
	test	eax, eax
	je	.L179
	lea	rdi, ac_miscdev[rip]
	call	misc_register
	mov	DWORD PTR -68[rbp], eax
	cmp	DWORD PTR -68[rbp], 0
	je	.L180
	lea	rdi, .LC20[rip]
	mov	eax, 0
	call	printk@PLT
	nop
.L181:
	mov	DWORD PTR -96[rbp], 0
	jmp	.L189
.L180:
	mov	DWORD PTR -96[rbp], 0
	jmp	.L182
.L188:
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L204
	mov	DWORD PTR -88[rbp], 0
	jmp	.L185
.L186:
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	add	rax, 960
	add	rax, rdx
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -97[rbp], al
	movzx	edx, BYTE PTR -97[rbp]
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	mov	BYTE PTR -48[rbp+rax], dl
	add	DWORD PTR -88[rbp], 1
.L185:
	cmp	DWORD PTR -88[rbp], 25
	jle	.L186
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	mov	BYTE PTR -48[rbp+rax], 0
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -102[rbp], al
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -101[rbp], al
	movzx	eax, BYTE PTR -102[rbp]
	and	eax, 15
	mov	ecx, eax
	movzx	eax, BYTE PTR -101[rbp]
	shr	al, 4
	movzx	edx, al
	mov	eax, DWORD PTR -96[rbp]
	lea	esi, 1[rax]
	lea	rax, -48[rbp]
	mov	r8d, ecx
	mov	ecx, edx
	mov	rdx, rax
	lea	rdi, .LC21[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 986
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -100[rbp], al
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 987
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -99[rbp], al
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 988
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -98[rbp], al
	movzx	eax, BYTE PTR -100[rbp]
	sal	eax, 16
	mov	edx, eax
	movzx	eax, BYTE PTR -99[rbp]
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR -98[rbp]
	add	eax, edx
	mov	DWORD PTR -88[rbp], eax
	cmp	DWORD PTR -88[rbp], 0
	je	.L187
	mov	eax, DWORD PTR -88[rbp]
	mov	esi, eax
	lea	rdi, .LC22[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L184
.L187:
	lea	rdi, .LC23[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L184
.L204:
	nop
.L184:
	add	DWORD PTR -96[rbp], 1
.L182:
	cmp	DWORD PTR -96[rbp], 7
	jle	.L188
	mov	eax, 0
	jmp	.L194
.L179:
	mov	eax, -6
	jmp	.L194
.L193:
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L205
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+32]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L192
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+32]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rsi, dummy[rip]
	mov	edi, eax
	call	free_irq
.L192:
	mov	eax, DWORD PTR -96[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	iounmap@PLT
	jmp	.L191
.L205:
	nop
.L191:
	add	DWORD PTR -96[rbp], 1
.L189:
	cmp	DWORD PTR -96[rbp], 7
	jle	.L193
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	pci_disable_device@PLT
	mov	eax, DWORD PTR -68[rbp]
.L194:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L195
	call	__stack_chk_fail@PLT
.L195:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	applicom_init, .-applicom_init
	.globl	_ddv_tmp_init
	.section	.data.rel.local
	.align 8
	.type	_ddv_tmp_init, @object
	.size	_ddv_tmp_init, 8
_ddv_tmp_init:
	.quad	applicom_init
	.globl	_ddv_tmp_exit
	.align 8
	.type	_ddv_tmp_exit, @object
	.size	_ddv_tmp_exit, 8
_ddv_tmp_exit:
	.quad	applicom_exit
	.data
	.align 4
	.type	warncount, @object
	.size	warncount, 4
warncount:
	.long	5
	.section	.rodata
	.align 8
.LC24:
	.string	"<6>Hmmm. write() of Applicom card, length %zd != expected %zd\n"
	.align 8
.LC25:
	.string	"<4>APPLICOM driver write error board %d, DataFromPcReady = %d\n"
	.text
	.globl	ac_write
	.type	ac_write, @function
ac_write:
.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, 512
	mov	QWORD PTR -488[rbp], rdi
	mov	QWORD PTR -496[rbp], rsi
	mov	DWORD PTR -500[rbp], edx
	mov	QWORD PTR -512[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -500[rbp], 368
	je	.L207
	mov	eax, DWORD PTR warncount[rip]
	test	eax, eax
	je	.L208
	mov	eax, DWORD PTR -500[rbp]
	mov	edx, 368
	mov	esi, eax
	lea	rdi, .LC24[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR warncount[rip]
	sub	eax, 1
	mov	DWORD PTR warncount[rip], eax
.L208:
	mov	eax, -22
	jmp	.L222
.L207:
	mov	rcx, QWORD PTR -496[rbp]
	lea	rax, -384[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_from_user
	mov	QWORD PTR -432[rbp], rax
	cmp	QWORD PTR -432[rbp], 0
	je	.L210
	mov	eax, -14
	jmp	.L222
.L210:
	mov	rax, QWORD PTR -496[rbp]
	lea	rcx, 64[rax]
	lea	rax, -320[rbp]
	mov	edx, 304
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_from_user
	mov	QWORD PTR -424[rbp], rax
	cmp	QWORD PTR -424[rbp], 0
	je	.L211
	mov	eax, -14
	jmp	.L222
.L211:
	movzx	eax, BYTE PTR -353[rbp]
	movzx	eax, al
	mov	DWORD PTR -460[rbp], eax
	movzx	eax, BYTE PTR -376[rbp]
	mov	BYTE PTR -475[rbp], al
	mov	eax, DWORD PTR -460[rbp]
	sub	eax, 1
	mov	DWORD PTR -456[rbp], eax
	cmp	DWORD PTR -460[rbp], 0
	jne	.L212
	mov	eax, -22
	jmp	.L222
.L212:
	cmp	DWORD PTR -460[rbp], 8
	jbe	.L213
	mov	eax, -22
	jmp	.L222
.L213:
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	jne	.L214
	mov	eax, -22
	jmp	.L222
.L214:
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_lock_irqsave
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -474[rbp], al
	cmp	BYTE PTR -474[rbp], 2
	jbe	.L215
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -470[rbp], al
	movzx	eax, BYTE PTR -470[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_unlock_irqrestore
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -469[rbp], al
	movzx	edx, BYTE PTR -469[rbp]
	mov	eax, DWORD PTR -456[rbp]
	mov	esi, eax
	lea	rdi, .LC25[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR DeviceErrorCount[rip]
	add	eax, 1
	mov	DWORD PTR DeviceErrorCount[rip], eax
	mov	eax, -5
	jmp	.L222
.L215:
	mov	edi, 1
	call	set_current_state@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 16[rax]
	lea	rax, apbs[rip]
	add	rdx, rax
	lea	rax, -468[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	add_wait_queue@PLT
.L219:
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -473[rbp], al
	cmp	BYTE PTR -473[rbp], 0
	je	.L225
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -472[rbp], al
	movzx	eax, BYTE PTR -472[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_unlock_irqrestore
	call	schedule
	call	get_current@PLT
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	rdi, rax
	call	signal_pending@PLT
	mov	DWORD PTR -452[rbp], eax
	cmp	DWORD PTR -452[rbp], 0
	je	.L218
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 16[rax]
	lea	rax, apbs[rip]
	add	rdx, rax
	lea	rax, -468[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	remove_wait_queue@PLT
	mov	eax, -4
	jmp	.L222
.L218:
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_lock_irqsave
	mov	edi, 1
	call	set_current_state@PLT
	jmp	.L219
.L225:
	nop
	mov	edi, 0
	call	set_current_state@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 16[rax]
	lea	rax, apbs[rip]
	add	rdx, rax
	lea	rax, -468[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	remove_wait_queue@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rsi, rax
	mov	edi, 1
	call	writeb@PLT
	lea	rax, -320[rbp]
	mov	QWORD PTR -448[rbp], rax
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 368
	mov	QWORD PTR -440[rbp], rax
	mov	DWORD PTR -464[rbp], 0
	jmp	.L220
.L221:
	mov	rax, QWORD PTR -440[rbp]
	mov	QWORD PTR -400[rbp], rax
	add	QWORD PTR -440[rbp], 1
	mov	rax, QWORD PTR -448[rbp]
	mov	QWORD PTR -392[rbp], rax
	add	QWORD PTR -448[rbp], 1
	mov	rax, QWORD PTR -392[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	rdx, QWORD PTR -400[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	add	DWORD PTR -464[rbp], 1
.L220:
	mov	eax, DWORD PTR -464[rbp]
	cmp	eax, 303
	jbe	.L221
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 6
	mov	rsi, rax
	mov	edi, 32
	call	writeb@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 7
	mov	rsi, rax
	mov	edi, 255
	call	writeb@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 8[rax]
	movzx	eax, BYTE PTR -475[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 9[rax]
	mov	eax, DWORD PTR -460[rbp]
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rsi, rax
	mov	edi, 2
	call	writeb@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1022
	mov	rsi, rax
	mov	edi, 1
	call	writeb@PLT
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -471[rbp], al
	movzx	eax, BYTE PTR -471[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	edx, DWORD PTR -456[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -416[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_unlock_irqrestore
	mov	eax, 0
.L222:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L223
	call	__stack_chk_fail@PLT
.L223:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	ac_write, .-ac_write
	.globl	do_ac_read
	.type	do_ac_read, @function
do_ac_read:
.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, 80
	mov	DWORD PTR -52[rbp], edi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	QWORD PTR -80[rbp], rcx
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 64
	mov	QWORD PTR -32[rbp], rax
	lea	rax, -80[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1
	mov	rdi, rax
	call	readb@PLT
	mov	rdx, QWORD PTR -72[rbp]
	mov	BYTE PTR 1[rdx], al
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 2
	mov	rdi, rax
	call	readb@PLT
	mov	rdx, QWORD PTR -72[rbp]
	mov	BYTE PTR 2[rdx], al
	mov	DWORD PTR -36[rbp], 0
	jmp	.L227
.L228:
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	add	QWORD PTR -24[rbp], 1
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -8[rbp], rax
	add	QWORD PTR -32[rbp], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rdx, QWORD PTR -16[rbp]
	mov	BYTE PTR [rdx], al
	add	DWORD PTR -36[rbp], 1
.L227:
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, 303
	jbe	.L228
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 14
	mov	rsi, rax
	mov	edi, 1
	call	writeb@PLT
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 17
	mov	rsi, rax
	mov	edi, 1
	call	writeb@PLT
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 16[rax]
	mov	eax, DWORD PTR -52[rbp]
	add	eax, 1
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -38[rbp], al
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 15[rax]
	movzx	eax, BYTE PTR -38[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 14
	mov	rsi, rax
	mov	edi, 2
	call	writeb@PLT
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rsi, rax
	mov	edi, 0
	call	writeb@PLT
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1022
	mov	rsi, rax
	mov	edi, 2
	call	writeb@PLT
	mov	eax, DWORD PTR -52[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -37[rbp], al
	movzx	eax, BYTE PTR -37[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	eax, 368
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	do_ac_read, .-do_ac_read
	.section	.rodata
	.align 8
.LC26:
	.string	"<4>Hmmm. read() of Applicom card, length %zd != expected %zd\n"
	.align 8
.LC27:
	.string	"<4>APPLICOM driver read error board %d, DataToPcReady = %d\n"
	.text
	.globl	ac_read
	.type	ac_read, @function
ac_read:
.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, 480
	mov	QWORD PTR -456[rbp], rdi
	mov	QWORD PTR -464[rbp], rsi
	mov	DWORD PTR -468[rbp], edx
	mov	QWORD PTR -480[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -424[rbp], 0
	cmp	DWORD PTR -468[rbp], 368
	je	.L231
	mov	eax, DWORD PTR -468[rbp]
	mov	edx, 368
	mov	esi, eax
	lea	rdi, .LC26[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -22
	jmp	.L242
.L231:
	mov	edi, 1
	call	set_current_state@PLT
	lea	rax, -432[rbp]
	mov	rsi, rax
	lea	rdi, FlagSleepRec[rip]
	call	add_wait_queue@PLT
	mov	DWORD PTR -428[rbp], 0
	jmp	.L233
.L240:
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L244
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_lock_irqsave
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -436[rbp], al
	cmp	BYTE PTR -436[rbp], 2
	jne	.L236
	mov	eax, DWORD PTR -428[rbp]
	lea	rcx, -320[rbp]
	lea	rdx, -384[rbp]
	mov	rsi, QWORD PTR -464[rbp]
	mov	edi, eax
	call	do_ac_read
	mov	DWORD PTR -424[rbp], eax
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_unlock_irqrestore
	mov	edi, 0
	call	set_current_state@PLT
	lea	rax, -432[rbp]
	mov	rsi, rax
	lea	rdi, FlagSleepRec[rip]
	call	remove_wait_queue@PLT
	lea	rcx, -384[rbp]
	mov	rax, QWORD PTR -464[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -400[rbp], rax
	cmp	QWORD PTR -400[rbp], 0
	je	.L237
	mov	eax, -14
	jmp	.L242
.L237:
	mov	rax, QWORD PTR -464[rbp]
	lea	rcx, 64[rax]
	lea	rax, -320[rbp]
	mov	edx, 304
	mov	rsi, rax
	mov	rdi, rcx
	call	copy_to_user
	mov	QWORD PTR -392[rbp], rax
	cmp	QWORD PTR -392[rbp], 0
	je	.L238
	mov	eax, -14
	jmp	.L242
.L238:
	movzx	eax, BYTE PTR -436[rbp]
	jmp	.L242
.L236:
	cmp	BYTE PTR -436[rbp], 2
	jbe	.L239
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -434[rbp], al
	movzx	eax, BYTE PTR -434[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_unlock_irqrestore
	mov	edi, 0
	call	set_current_state@PLT
	lea	rax, -432[rbp]
	mov	rsi, rax
	lea	rdi, FlagSleepRec[rip]
	call	remove_wait_queue@PLT
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -433[rbp], al
	movzx	edx, BYTE PTR -433[rbp]
	mov	eax, DWORD PTR -428[rbp]
	mov	esi, eax
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR DeviceErrorCount[rip]
	add	eax, 1
	mov	DWORD PTR DeviceErrorCount[rip], eax
	mov	eax, -5
	jmp	.L242
.L239:
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -435[rbp], al
	movzx	eax, BYTE PTR -435[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	edx, DWORD PTR -428[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	lea	rdx, 8[rax]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rax
	mov	rdi, rdx
	call	spin_unlock_irqrestore
	jmp	.L235
.L244:
	nop
.L235:
	add	DWORD PTR -428[rbp], 1
.L233:
	cmp	DWORD PTR -428[rbp], 7
	jbe	.L240
	call	schedule
	lea	rax, -432[rbp]
	mov	rsi, rax
	lea	rdi, FlagSleepRec[rip]
	call	remove_wait_queue@PLT
	call	get_current@PLT
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	rdi, rax
	call	signal_pending@PLT
	mov	DWORD PTR -420[rbp], eax
	cmp	DWORD PTR -420[rbp], 0
	je	.L231
	mov	eax, -4
.L242:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L243
	call	__stack_chk_fail@PLT
.L243:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	ac_read, .-ac_read
	.section	.rodata
	.align 8
.LC28:
	.string	"<4>APPLICOM driver interrupt err board %d, DataToPcReady = %d\n"
	.align 8
.LC29:
	.string	"<4>APPLICOM driver interrupt err board %d, DataFromPcReady = %d\n"
	.text
	.globl	ac_interrupt
	.type	ac_interrupt, @function
ac_interrupt:
.LFB37:
	.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	QWORD PTR -64[rbp], rsi
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -16[rbp], 0
.L260:
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -24[rbp], 0
	jmp	.L246
.L255:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L263
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	add	rax, 8
	mov	rdi, rax
	call	spin_lock
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1023
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -34[rbp], al
	cmp	BYTE PTR -34[rbp], 0
	jne	.L249
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	add	rax, 8
	mov	rdi, rax
	call	spin_unlock
	jmp	.L248
.L249:
	mov	DWORD PTR -12[rbp], 1
	mov	DWORD PTR -20[rbp], 1
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1023
	mov	rsi, rax
	mov	edi, 0
	call	writeb@PLT
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -33[rbp], al
	cmp	BYTE PTR -33[rbp], 2
	jbe	.L250
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -32[rbp], al
	movzx	eax, BYTE PTR -32[rbp]
	mov	edx, DWORD PTR -24[rbp]
	lea	ecx, 1[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR DeviceErrorCount[rip]
	add	eax, 1
	mov	DWORD PTR DeviceErrorCount[rip], eax
.L250:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -31[rbp], al
	cmp	BYTE PTR -31[rbp], 2
	jbe	.L251
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -30[rbp], al
	cmp	BYTE PTR -30[rbp], 6
	je	.L251
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -29[rbp], al
	movzx	eax, BYTE PTR -29[rbp]
	mov	edx, DWORD PTR -24[rbp]
	lea	ecx, 1[rdx]
	mov	edx, eax
	mov	esi, ecx
	lea	rdi, .LC29[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR DeviceErrorCount[rip]
	add	eax, 1
	mov	DWORD PTR DeviceErrorCount[rip], eax
.L251:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -28[rbp], al
	cmp	BYTE PTR -28[rbp], 2
	jne	.L252
	lea	rdi, FlagSleepRec[rip]
	call	waitqueue_active@PLT
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	je	.L252
	lea	rdi, FlagSleepRec[rip]
	call	wake_up_interruptible
.L252:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -27[rbp], al
	cmp	BYTE PTR -27[rbp], 0
	jne	.L253
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 16[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	mov	rdi, rax
	call	waitqueue_active@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L253
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 16[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	mov	rdi, rax
	call	wake_up_interruptible
.L253:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -26[rbp], al
	movzx	eax, BYTE PTR -26[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1023
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -25[rbp], al
	cmp	BYTE PTR -25[rbp], 0
	je	.L254
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	add	rax, 8
	mov	rdi, rax
	call	spin_unlock
	sub	DWORD PTR -24[rbp], 1
	jmp	.L248
.L254:
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 32[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	add	rax, 8
	mov	rdi, rax
	call	spin_unlock
	jmp	.L248
.L263:
	nop
.L248:
	add	DWORD PTR -24[rbp], 1
.L246:
	cmp	DWORD PTR -24[rbp], 7
	jbe	.L255
	cmp	DWORD PTR -20[rbp], 0
	je	.L256
	mov	DWORD PTR -16[rbp], 0
	jmp	.L257
.L256:
	add	DWORD PTR -16[rbp], 1
.L257:
	cmp	DWORD PTR -16[rbp], 1
	ja	.L264
	jmp	.L260
.L264:
	nop
	cmp	DWORD PTR -12[rbp], 0
	setne	al
	movzx	eax, al
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	ac_interrupt, .-ac_interrupt
	.data
	.align 4
	.type	warncount___0, @object
	.size	warncount___0, 4
warncount___0:
	.long	10
	.section	.rodata
	.align 8
.LC30:
	.string	"<4>APPLICOM driver IOCTL, bad board number %d\n"
	.align 8
.LC31:
	.string	"<6>APPLICOM driver release .... V2.8.0 ($Revision: 1.30 $)\n"
	.align 8
.LC32:
	.string	"<6>Number of installed boards . %d\n"
	.align 8
.LC33:
	.string	"<6>Segment of board ........... %X\n"
	.align 8
.LC34:
	.string	"<6>Interrupt IRQ number ....... %d\n"
	.align 8
.LC35:
	.string	"<6>Prom version board %d ....... V%d.%d %s"
	.align 8
.LC36:
	.string	"<6>DeviceErrorCount ........... %d\n"
	.align 8
.LC37:
	.string	"<6>ReadErrorCount ............. %d\n"
	.align 8
.LC38:
	.string	"<6>WriteErrorCount ............ %d\n"
.LC39:
	.string	"<6>Process in read pending\n"
	.align 8
.LC40:
	.string	"<6>Process in write pending board %d\n"
	.align 8
.LC41:
	.string	"<6>APPLICOM driver ioctl, unknown function code %d\n"
	.text
	.globl	ac_ioctl
	.type	ac_ioctl, @function
ac_ioctl:
.LFB38:
	.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, 248
	.cfi_offset 3, -24
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	DWORD PTR -244[rbp], edx
	mov	QWORD PTR -256[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -196[rbp], 0
	mov	rax, QWORD PTR -256[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	esi, 208
	mov	edi, 64
	call	kmalloc
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -160[rbp], rax
	cmp	QWORD PTR -160[rbp], 0
	jne	.L266
	mov	eax, -12
	jmp	.L315
.L266:
	mov	rcx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -160[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_from_user
	mov	QWORD PTR -152[rbp], rax
	cmp	QWORD PTR -152[rbp], 0
	je	.L268
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, -14
	jmp	.L315
.L268:
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR 31[rax]
	sub	eax, 1
	mov	BYTE PTR -216[rbp], al
	cmp	DWORD PTR -244[rbp], 0
	je	.L269
	cmp	DWORD PTR -244[rbp], 6
	je	.L269
	cmp	BYTE PTR -216[rbp], 7
	ja	.L317
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	jne	.L269
	jmp	.L271
.L317:
	nop
.L271:
	mov	eax, DWORD PTR warncount___0[rip]
	test	eax, eax
	je	.L272
	movzx	eax, BYTE PTR -216[rbp]
	add	eax, 1
	mov	esi, eax
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR warncount___0[rip]
	sub	eax, 1
	mov	DWORD PTR warncount___0[rip], eax
.L272:
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, -22
	jmp	.L315
.L269:
	cmp	DWORD PTR -244[rbp], 6
	ja	.L273
	mov	eax, DWORD PTR -244[rbp]
	lea	rdx, 0[0+rax*4]
	lea	rax, .L275[rip]
	mov	eax, DWORD PTR [rdx+rax]
	cdqe
	lea	rdx, .L275[rip]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L275:
	.long	.L281-.L275
	.long	.L280-.L275
	.long	.L279-.L275
	.long	.L278-.L275
	.long	.L277-.L275
	.long	.L276-.L275
	.long	.L274-.L275
	.text
.L281:
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	mov	QWORD PTR -184[rbp], rax
	mov	DWORD PTR -204[rbp], 0
	jmp	.L282
.L283:
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -72[rbp], rax
	add	QWORD PTR -184[rbp], 1
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, QWORD PTR -160[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR [rbx], al
	add	DWORD PTR -204[rbp], 1
.L282:
	mov	eax, DWORD PTR -204[rbp]
	cmp	eax, 63
	jbe	.L283
	mov	rcx, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -80[rbp], rax
	cmp	QWORD PTR -80[rbp], 0
	je	.L318
	mov	DWORD PTR -196[rbp], -14
	jmp	.L318
.L280:
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 18
	mov	QWORD PTR -184[rbp], rax
	mov	DWORD PTR -204[rbp], 0
	jmp	.L286
.L287:
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -88[rbp], rax
	add	QWORD PTR -184[rbp], 1
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rcx, QWORD PTR -160[rbp]
	mov	edx, DWORD PTR -204[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 18[rcx+rdx], al
	add	DWORD PTR -204[rbp], 1
.L286:
	cmp	DWORD PTR -204[rbp], 3
	jle	.L287
	mov	DWORD PTR -204[rbp], 0
	jmp	.L288
.L289:
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -96[rbp], rax
	add	QWORD PTR -184[rbp], 1
	mov	rax, QWORD PTR -96[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rcx, QWORD PTR -160[rbp]
	mov	edx, DWORD PTR -204[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 22[rcx+rdx], al
	add	DWORD PTR -204[rbp], 1
.L288:
	cmp	DWORD PTR -204[rbp], 1
	jle	.L289
	mov	DWORD PTR -204[rbp], 0
	jmp	.L290
.L291:
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -104[rbp], rax
	add	QWORD PTR -184[rbp], 1
	mov	rax, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rcx, QWORD PTR -160[rbp]
	mov	edx, DWORD PTR -204[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 24[rcx+rdx], al
	add	DWORD PTR -204[rbp], 1
.L290:
	cmp	DWORD PTR -204[rbp], 3
	jle	.L291
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rdx, QWORD PTR -160[rbp]
	mov	BYTE PTR 30[rdx], al
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 960
	mov	QWORD PTR -184[rbp], rax
	mov	DWORD PTR -204[rbp], 0
	jmp	.L292
.L293:
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -112[rbp], rax
	add	QWORD PTR -184[rbp], 1
	mov	rax, QWORD PTR -112[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rcx, QWORD PTR -160[rbp]
	mov	edx, DWORD PTR -204[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 32[rcx+rdx], al
	add	DWORD PTR -204[rbp], 1
.L292:
	cmp	DWORD PTR -204[rbp], 19
	jle	.L293
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 986
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -208[rbp], al
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 987
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -207[rbp], al
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 988
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -206[rbp], al
	movzx	eax, BYTE PTR -208[rbp]
	sal	eax, 16
	mov	edx, eax
	movzx	eax, BYTE PTR -207[rbp]
	sal	eax, 8
	lea	ecx, [rdx+rax]
	movzx	edx, BYTE PTR -206[rbp]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 52
	add	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rcx, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -120[rbp], rax
	cmp	QWORD PTR -120[rbp], 0
	je	.L319
	mov	DWORD PTR -196[rbp], -14
	jmp	.L319
.L279:
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 18
	mov	QWORD PTR -184[rbp], rax
	mov	DWORD PTR -204[rbp], 0
	jmp	.L295
.L296:
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -128[rbp], rax
	add	QWORD PTR -184[rbp], 1
	mov	rax, QWORD PTR -128[rbp]
	mov	rsi, rax
	mov	edi, 255
	call	writeb@PLT
	add	DWORD PTR -204[rbp], 1
.L295:
	cmp	DWORD PTR -204[rbp], 9
	jle	.L296
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 5[rax]
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR 5[rax]
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1022
	mov	rsi, rax
	mov	edi, 1
	call	writeb@PLT
	mov	DWORD PTR -204[rbp], 0
	jmp	.L297
.L299:
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L298
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1023
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -209[rbp], al
	movzx	eax, BYTE PTR -209[rbp]
	mov	BYTE PTR -217[rbp], al
.L298:
	add	DWORD PTR -204[rbp], 1
.L297:
	cmp	DWORD PTR -204[rbp], 7
	jle	.L299
	jmp	.L285
.L278:
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 8
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR 8[rax]
	movzx	eax, al
	mov	rdx, QWORD PTR -184[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	jmp	.L285
.L277:
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -144[rbp], rax
	add	QWORD PTR -184[rbp], 1
	mov	rax, QWORD PTR -144[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rdx, QWORD PTR -160[rbp]
	mov	BYTE PTR 1[rdx], al
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	readb@PLT
	mov	rdx, QWORD PTR -160[rbp]
	mov	BYTE PTR 2[rdx], al
	mov	rcx, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR -176[rbp]
	mov	edx, 64
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -136[rbp], rax
	cmp	QWORD PTR -136[rbp], 0
	je	.L320
	mov	DWORD PTR -196[rbp], -14
	jmp	.L320
.L276:
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 2[rax]
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR 31[rax]
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 9[rax]
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR 31[rax]
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	lea	rdx, 16[rax]
	mov	rax, QWORD PTR -160[rbp]
	movzx	eax, BYTE PTR 31[rax]
	movzx	eax, al
	mov	rsi, rdx
	mov	edi, eax
	call	writeb@PLT
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 5
	mov	rsi, rax
	mov	edi, 4
	call	writeb@PLT
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 1022
	mov	rsi, rax
	mov	edi, 1
	call	writeb@PLT
	jmp	.L285
.L274:
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR numboards[rip]
	mov	esi, eax
	lea	rdi, .LC32[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR mem[rip]
	mov	esi, eax
	lea	rdi, .LC33[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR irq[rip]
	mov	esi, eax
	lea	rdi, .LC34[rip]
	mov	eax, 0
	call	printk@PLT
	mov	DWORD PTR -204[rbp], 0
	jmp	.L301
.L307:
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L321
	mov	DWORD PTR -200[rbp], 0
	jmp	.L304
.L305:
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rdx, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	add	rax, 960
	add	rax, rdx
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -210[rbp], al
	movzx	edx, BYTE PTR -210[rbp]
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	mov	BYTE PTR -64[rbp+rax], dl
	add	DWORD PTR -200[rbp], 1
.L304:
	cmp	DWORD PTR -200[rbp], 25
	jle	.L305
	mov	eax, DWORD PTR -200[rbp]
	cdqe
	mov	BYTE PTR -64[rbp+rax], 0
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -215[rbp], al
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -214[rbp], al
	movzx	eax, BYTE PTR -215[rbp]
	and	eax, 15
	mov	edx, eax
	movzx	eax, BYTE PTR -214[rbp]
	shr	al, 4
	movzx	eax, al
	mov	ecx, DWORD PTR -204[rbp]
	lea	esi, 1[rcx]
	lea	rcx, -64[rbp]
	mov	r8, rcx
	mov	ecx, edx
	mov	edx, eax
	lea	rdi, .LC35[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 986
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -213[rbp], al
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 987
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -212[rbp], al
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 988
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -211[rbp], al
	movzx	eax, BYTE PTR -213[rbp]
	sal	eax, 16
	mov	edx, eax
	movzx	eax, BYTE PTR -212[rbp]
	sal	eax, 8
	add	edx, eax
	movzx	eax, BYTE PTR -211[rbp]
	add	eax, edx
	mov	DWORD PTR -200[rbp], eax
	cmp	DWORD PTR -200[rbp], 0
	je	.L306
	mov	eax, DWORD PTR -200[rbp]
	mov	esi, eax
	lea	rdi, .LC22[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L303
.L306:
	lea	rdi, .LC23[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L303
.L321:
	nop
.L303:
	add	DWORD PTR -204[rbp], 1
.L301:
	cmp	DWORD PTR -204[rbp], 7
	jle	.L307
	mov	eax, DWORD PTR DeviceErrorCount[rip]
	test	eax, eax
	je	.L308
	mov	eax, DWORD PTR DeviceErrorCount[rip]
	mov	esi, eax
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	printk@PLT
.L308:
	mov	eax, DWORD PTR ReadErrorCount[rip]
	test	eax, eax
	je	.L309
	mov	eax, DWORD PTR ReadErrorCount[rip]
	mov	esi, eax
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	printk@PLT
.L309:
	mov	eax, DWORD PTR WriteErrorCount[rip]
	test	eax, eax
	je	.L310
	mov	eax, DWORD PTR WriteErrorCount[rip]
	mov	esi, eax
	lea	rdi, .LC38[rip]
	mov	eax, 0
	call	printk@PLT
.L310:
	lea	rdi, FlagSleepRec[rip]
	call	waitqueue_active@PLT
	mov	DWORD PTR -192[rbp], eax
	cmp	DWORD PTR -192[rbp], 0
	je	.L311
	lea	rdi, .LC39[rip]
	mov	eax, 0
	call	printk@PLT
.L311:
	mov	DWORD PTR -204[rbp], 0
	jmp	.L312
.L314:
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L313
	mov	eax, DWORD PTR -204[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	lea	rdx, 16[rax]
	lea	rax, apbs[rip]
	add	rax, rdx
	mov	rdi, rax
	call	waitqueue_active@PLT
	mov	DWORD PTR -188[rbp], eax
	cmp	DWORD PTR -188[rbp], 0
	je	.L313
	mov	eax, DWORD PTR -204[rbp]
	add	eax, 1
	mov	esi, eax
	lea	rdi, .LC40[rip]
	mov	eax, 0
	call	printk@PLT
.L313:
	add	DWORD PTR -204[rbp], 1
.L312:
	cmp	DWORD PTR -204[rbp], 7
	jle	.L314
	jmp	.L285
.L273:
	mov	eax, DWORD PTR -244[rbp]
	mov	esi, eax
	lea	rdi, .LC41[rip]
	mov	eax, 0
	call	printk@PLT
	mov	DWORD PTR -196[rbp], -22
	jmp	.L285
.L318:
	nop
	jmp	.L285
.L319:
	nop
	jmp	.L285
.L320:
	nop
.L285:
	movzx	eax, BYTE PTR -216[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 4
	mov	rdx, rax
	lea	rax, apbs[rip+8]
	mov	rax, QWORD PTR [rdx+rax]
	add	rax, 30
	mov	rdi, rax
	call	readb@PLT
	mov	BYTE PTR -205[rbp], al
	movzx	eax, BYTE PTR -205[rbp]
	mov	BYTE PTR Dummy[rip], al
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, 0
.L315:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L316
	call	__stack_chk_fail@PLT
.L316:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	ac_ioctl, .-ac_ioctl
	.globl	main
	.type	main, @function
main:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rax, applicom_init[rip]
	mov	QWORD PTR _ddv_module_init[rip], rax
	lea	rax, applicom_exit[rip]
	mov	QWORD PTR _ddv_module_exit[rip], rax
	call	call_ddv
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	main, .-main
	.globl	request_irq
	.type	request_irq, @function
request_irq:
.LFB40:
	.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 -20[rbp], edi
	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	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L325
	mov	eax, DWORD PTR -20[rbp]
	sal	rax, 4
	mov	rcx, rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, DWORD PTR -20[rbp]
	sal	rax, 4
	mov	rcx, rax
	lea	rdx, registered_irq[rip+8]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rcx+rdx], rax
	mov	eax, 0
	jmp	.L326
.L325:
	mov	eax, -1
.L326:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	request_irq, .-request_irq
	.globl	free_irq
	.type	free_irq, @function
free_irq:
.LFB41:
	.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	QWORD PTR -16[rbp], rsi
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, registered_irq[rip]
	mov	QWORD PTR [rdx+rax], 0
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, registered_irq[rip+8]
	mov	QWORD PTR [rdx+rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	free_irq, .-free_irq
	.globl	proc_root_driver
	.bss
	.align 8
	.type	proc_root_driver, @object
	.size	proc_root_driver, 8
proc_root_driver:
	.zero	8
	.text
	.globl	misc_register
	.type	misc_register, @function
misc_register:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, DWORD PTR fixed_cdev_used[rip]
	cmp	eax, 9
	jg	.L330
	mov	eax, DWORD PTR fixed_cdev_used[rip]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR fixed_cdev_used[rip]
	add	eax, 1
	mov	DWORD PTR fixed_cdev_used[rip], eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	rdx, rax
	lea	rax, fixed_cdev[rip]
	mov	QWORD PTR [rdx+rax], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	eax, DWORD PTR -12[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	sal	rax, 3
	mov	rcx, rax
	lea	rax, fixed_cdev[rip+8]
	mov	QWORD PTR [rcx+rax], rdx
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, 10485760
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	lea	rdx, fixed_cdev[rip]
	lea	rcx, [rax+rdx]
	mov	eax, DWORD PTR -8[rbp]
	mov	edx, 0
	mov	esi, eax
	mov	rdi, rcx
	call	cdev_add@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	jmp	.L331
.L330:
	mov	eax, -1
.L331:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	misc_register, .-misc_register
	.type	assert_context_process, @function
assert_context_process:
.LFB43:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	assert_context_process, .-assert_context_process
	.globl	pci_enable_device
	.type	pci_enable_device, @function
pci_enable_device:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	DWORD PTR -8[rbp], 0
	jmp	.L335
.L336:
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	add	rax, 2
	sal	rax, 5
	add	rax, rdx
	add	rax, 8
	mov	QWORD PTR [rax], 256
	mov	eax, 0
	call	nondet_uint@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	sal	rdx, 5
	add	rdx, rcx
	add	rdx, 56
	mov	QWORD PTR [rdx], rax
	mov	eax, 0
	call	nondet_ushort@PLT
	mov	WORD PTR -10[rbp], ax
	mov	rdx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 5
	add	rax, rdx
	add	rax, 56
	mov	rdx, QWORD PTR [rax]
	movzx	eax, WORD PTR -10[rbp]
	add	rdx, rax
	mov	rcx, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	add	rax, 2
	sal	rax, 5
	add	rax, rcx
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -8[rbp], 1
.L335:
	cmp	DWORD PTR -8[rbp], 11
	jle	.L336
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	pci_enable_device, .-pci_enable_device
	.globl	pci_get_class
	.type	pci_get_class, @function
pci_get_class:
.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, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	cmp	QWORD PTR -32[rbp], 0
	jne	.L339
	mov	edi, 432
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR -32[rbp], rax
.L339:
	mov	eax, 0
	call	nondet_int@PLT
	mov	DWORD PTR -12[rbp], eax
	cmp	DWORD PTR -12[rbp], 0
	je	.L340
	mov	eax, 0
	call	nondet_ushort@PLT
	mov	rdx, QWORD PTR -32[rbp]
	mov	WORD PTR 12[rdx], ax
	mov	eax, 0
	call	nondet_ushort@PLT
	mov	rdx, QWORD PTR -32[rbp]
	mov	WORD PTR 14[rdx], ax
	mov	eax, 0
	call	nondet_uint@PLT
	mov	rdx, QWORD PTR -32[rbp]
	mov	DWORD PTR 40[rdx], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR 40[rax]
	cmp	eax, 15
	setbe	al
	movzx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	rax, QWORD PTR -32[rbp]
	jmp	.L341
.L340:
	mov	eax, 0
.L341:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	pci_get_class, .-pci_get_class
	.globl	ddv_ioport_request_start
	.bss
	.align 4
	.type	ddv_ioport_request_start, @object
	.size	ddv_ioport_request_start, 4
ddv_ioport_request_start:
	.zero	4
	.globl	ddv_ioport_request_len
	.align 4
	.type	ddv_ioport_request_len, @object
	.size	ddv_ioport_request_len, 4
ddv_ioport_request_len:
	.zero	4
	.text
	.globl	request_region
	.type	request_region, @function
request_region:
.LFB59:
	.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	edi, 32
	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 -24[rbp]
	mov	DWORD PTR ddv_ioport_request_start[rip], eax
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR ddv_ioport_request_len[rip], eax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	request_region, .-request_region
	.globl	release_region
	.type	release_region, @function
release_region:
.LFB60:
	.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 -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	DWORD PTR -4[rbp], 0
	mov	DWORD PTR ddv_ioport_request_start[rip], 0
	mov	DWORD PTR ddv_ioport_request_len[rip], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	release_region, .-release_region
	.globl	schedule
	.type	schedule, @function
schedule:
.LFB67:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	assert_context_process
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	schedule, .-schedule
	.globl	schedule_timeout
	.type	schedule_timeout, @function
schedule_timeout:
.LFB68:
	.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	assert_context_process
	mov	eax, 0
	call	nondet_long@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	schedule_timeout, .-schedule_timeout
	.globl	kmalloc
	.type	kmalloc, @function
kmalloc:
.LFB76:
	.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	eax, DWORD PTR -24[rbp]
	and	eax, 16
	test	eax, eax
	je	.L351
	call	assert_context_process
.L351:
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	kmalloc, .-kmalloc
	.globl	kzalloc
	.type	kzalloc, @function
kzalloc:
.LFB77:
	.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	eax, DWORD PTR -24[rbp]
	and	eax, 16
	test	eax, eax
	je	.L354
	call	assert_context_process
.L354:
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	kzalloc, .-kzalloc
	.globl	spin_lock_init
	.type	spin_lock_init, @function
spin_lock_init:
.LFB80:
	.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	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.size	spin_lock_init, .-spin_lock_init
	.globl	spin_lock
	.type	spin_lock, @function
spin_lock:
.LFB81:
	.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
.L361:
	mov	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jne	.L359
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], 1
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	jmp	.L362
.L359:
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	jmp	.L361
.L362:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	spin_lock, .-spin_lock
	.globl	spin_lock_irqsave
	.type	spin_lock_irqsave, @function
spin_lock_irqsave:
.LFB82:
	.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	QWORD PTR -16[rbp], rsi
.L366:
	mov	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR 4[rax]
	test	eax, eax
	jne	.L364
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], 1
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	jmp	.L367
.L364:
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	jmp	.L366
.L367:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.size	spin_lock_irqsave, .-spin_lock_irqsave
	.globl	spin_unlock
	.type	spin_unlock, @function
spin_unlock:
.LFB84:
	.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, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], 0
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	spin_unlock, .-spin_unlock
	.globl	spin_unlock_irqrestore
	.type	spin_unlock_irqrestore, @function
spin_unlock_irqrestore:
.LFB85:
	.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	QWORD PTR -16[rbp], rsi
	mov	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 4[rax], 0
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	spin_unlock_irqrestore, .-spin_unlock_irqrestore
	.globl	call_tasklet_functions
	.type	call_tasklet_functions, @function
call_tasklet_functions:
.LFB87:
	.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
	cmp	DWORD PTR -4[rbp], 9
	setbe	al
	movzx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L375
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L375
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip+8]
	mov	WORD PTR [rdx+rax], 1
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdx, QWORD PTR 8[rax]
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rcx, rax
	lea	rax, tasklet_registered[rip]
	mov	rax, QWORD PTR [rcx+rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	rdx
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip+8]
	mov	WORD PTR [rdx+rax], 0
	mov	eax, DWORD PTR -4[rbp]
	sal	rax, 4
	mov	rdx, rax
	lea	rax, tasklet_registered[rip]
	mov	QWORD PTR [rdx+rax], 0
	nop
.L375:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE87:
	.size	call_tasklet_functions, .-call_tasklet_functions
	.globl	global_tty_driver
	.bss
	.align 32
	.type	global_tty_driver, @object
	.size	global_tty_driver, 328
global_tty_driver:
	.zero	328
	.text
	.globl	alloc_tty_driver
	.type	alloc_tty_driver, @function
alloc_tty_driver:
.LFB93:
	.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
	movzx	eax, WORD PTR global_tty_driver[rip+320]
	test	ax, ax
	jne	.L377
	mov	DWORD PTR global_tty_driver[rip], 21506
	mov	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR global_tty_driver[rip+72], eax
	mov	eax, 0
	jmp	.L379
.L377:
	mov	eax, 0
.L379:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE93:
	.size	alloc_tty_driver, .-alloc_tty_driver
	.globl	tty_set_operations
	.type	tty_set_operations, @function
tty_set_operations:
.LFB94:
	.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	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 136[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 144[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 16[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 152[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 24[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 160[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 32[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 168[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 40[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 176[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 48[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 184[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 56[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 192[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 64[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 200[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 72[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 208[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 80[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 216[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 88[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 224[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 96[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 232[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 104[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 240[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 112[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 248[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 120[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 256[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 128[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 264[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 136[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 272[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 144[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 280[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 152[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 288[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 160[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 296[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 168[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 304[rax], rdx
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR 176[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR 312[rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.size	tty_set_operations, .-tty_set_operations
	.globl	copy_to_user
	.type	copy_to_user, @function
copy_to_user:
.LFB96:
	.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	assert_context_process
	mov	eax, 0
	call	nondet_ulong@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE96:
	.size	copy_to_user, .-copy_to_user
	.globl	copy_from_user
	.type	copy_from_user, @function
copy_from_user:
.LFB97:
	.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	assert_context_process
	mov	eax, 0
	call	nondet_ulong@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE97:
	.size	copy_from_user, .-copy_from_user
	.globl	vmalloc
	.type	vmalloc, @function
vmalloc:
.LFB98:
	.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	rax, QWORD PTR -24[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.size	vmalloc, .-vmalloc
	.globl	init_waitqueue_head
	.type	init_waitqueue_head, @function
init_waitqueue_head:
.LFB99:
	.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	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR 8[rax], 1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	init_waitqueue_head, .-init_waitqueue_head
	.globl	wake_up_interruptible
	.type	wake_up_interruptible, @function
wake_up_interruptible:
.LFB101:
	.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
.LFE101:
	.size	wake_up_interruptible, .-wake_up_interruptible
	.globl	call_shared_workqueue_functions
	.type	call_shared_workqueue_functions, @function
call_shared_workqueue_functions:
.LFB103:
	.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	eax, 0
	call	nondet_ushort@PLT
	mov	WORD PTR -4[rbp], ax
	movzx	eax, WORD PTR -4[rbp]
	mov	WORD PTR -2[rbp], ax
	cmp	WORD PTR -2[rbp], 9
	setbe	al
	movzx	eax, al
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	movzx	eax, WORD PTR -2[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, shared_workqueue[rip]
	mov	rax, QWORD PTR [rdx+rax]
	test	rax, rax
	je	.L395
	movzx	eax, WORD PTR -2[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, shared_workqueue[rip]
	mov	rax, QWORD PTR [rdx+rax]
	mov	rdx, QWORD PTR 8[rax]
	movzx	eax, WORD PTR -2[rbp]
	cdqe
	lea	rcx, 0[0+rax*8]
	lea	rax, shared_workqueue[rip]
	mov	rax, QWORD PTR [rcx+rax]
	mov	rax, QWORD PTR 16[rax]
	mov	rdi, rax
	call	rdx
	movzx	eax, WORD PTR -2[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	lea	rax, shared_workqueue[rip]
	mov	QWORD PTR [rdx+rax], 0
	nop
.L395:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	call_shared_workqueue_functions, .-call_shared_workqueue_functions
	.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	"833874.c"
	.text
	.comm	current_execution_context,4,4
	.comm	_ddv_module_init,4,4
	.comm	_ddv_module_exit,4,4
	.align	2
	.global	pthread_create
	.syntax unified
	.arm
	.fpu softvfp
	.type	pthread_create, %function
pthread_create:
	@ 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]
	str	r3, [fp, #-20]
	bl	nondet_pthread_t
	mov	r2, r0
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	ldr	r0, [fp, #-20]
	blx	r3
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pthread_create, .-pthread_create
	.comm	jiffies,4,4
	.comm	fixed_cdev,160,4
	.global	fixed_cdev_used
	.bss
	.align	2
	.type	fixed_cdev_used, %object
	.size	fixed_cdev_used, 4
fixed_cdev_used:
	.space	4
	.global	number_cdev_registered
	.align	1
	.type	number_cdev_registered, %object
	.size	number_cdev_registered, 2
number_cdev_registered:
	.space	2
	.comm	cdev_registered,880,8
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	call_cdev_functions
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_cdev_functions, %function
call_cdev_functions:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #68
	ldr	r3, .L55
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L55+4
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L47
	bl	nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-60]	@ movhi
	ldrh	r3, [fp, #-60]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	blt	.L6
	ldr	r3, .L55+4
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-52]
	cmp	r3, r2
	bge	.L7
	mov	r3, #1
	str	r3, [fp, #-56]
	b	.L8
.L7:
	mov	r3, #0
	str	r3, [fp, #-56]
	b	.L8
.L6:
	mov	r3, #0
	str	r3, [fp, #-56]
.L8:
	ldr	r0, [fp, #-56]
	bl	__CPROVER_assume
	bl	nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-58]	@ movhi
	ldrh	r3, [fp, #-58]
	cmp	r3, #26
	ldrls	pc, [pc, r3, asl #2]
	b	.L48
.L11:
	.word	.L37
	.word	.L36
	.word	.L48
	.word	.L34
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L30
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L26
	.word	.L48
	.word	.L24
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
	.word	.L48
.L37:
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L49
	bl	nondet_loff_t
	mov	r2, r0
	mov	r3, r1
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	bl	nondet_int
	str	r0, [fp, #-32]
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r1, [r3, #4]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #8
	ldr	r2, .L55+8
	add	ip, r3, r2
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-32]
	str	r0, [sp]
	mov	r0, ip
	blx	r1
	b	.L49
.L36:
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #8]
	cmp	r3, #0
	beq	.L50
	bl	nondet_char
	mov	r3, r0
	strb	r3, [fp, #-61]
	bl	nondet_size_t
	str	r0, [fp, #-36]
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r4, [r3, #8]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #8
	ldr	r2, .L55+8
	add	r0, r3, r2
	sub	r3, fp, #28
	sub	r1, fp, #61
	ldr	r2, [fp, #-36]
	blx	r4
	b	.L50
.L34:
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #12]
	cmp	r3, #0
	beq	.L51
	bl	nondet_char
	mov	r3, r0
	strb	r3, [fp, #-61]
	bl	nondet_size_t
	str	r0, [fp, #-36]
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r4, [r3, #12]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #8
	ldr	r2, .L55+8
	add	r0, r3, r2
	sub	r3, fp, #28
	sub	r1, fp, #61
	ldr	r2, [fp, #-36]
	blx	r4
	b	.L51
.L30:
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #24]
	cmp	r3, #0
	beq	.L52
	bl	nondet_uint
	str	r0, [fp, #-44]
	bl	nondet_ulong
	str	r0, [fp, #-40]
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r4, [r3, #24]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #48
	ldr	r2, .L55+8
	add	r0, r3, r2
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #8
	ldr	r2, .L55+8
	add	r1, r3, r2
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-44]
	blx	r4
	b	.L52
.L26:
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #40]
	cmp	r3, #0
	beq	.L53
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #80
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L53
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r4, [r3, #40]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #48
	ldr	r2, .L55+8
	add	r0, r3, r2
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #8
	ldr	r2, .L55+8
	add	r3, r3, r2
	mov	r1, r3
	blx	r4
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L53
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #80
	mov	r2, #1
	str	r2, [r3]
	b	.L53
.L24:
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r3, [r3, #48]
	cmp	r3, #0
	beq	.L54
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #80
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L54
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	ldr	r3, [r3]
	ldr	r3, [r3, #4]
	ldr	r4, [r3, #48]
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #48
	ldr	r2, .L55+8
	add	r0, r3, r2
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, #8
	ldr	r2, .L55+8
	add	r3, r3, r2
	mov	r1, r3
	blx	r4
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L54
	ldr	r1, .L55+8
	ldr	r2, [fp, #-52]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r1, r3
	add	r3, r3, #80
	mov	r2, #0
	str	r2, [r3]
	b	.L54
.L48:
	nop
	b	.L3
.L49:
	nop
	b	.L3
.L50:
	nop
	b	.L3
.L51:
	nop
	b	.L3
.L52:
	nop
	b	.L3
.L53:
	nop
	b	.L3
.L54:
	nop
	b	.L3
.L47:
	nop
.L3:
	ldr	r3, .L55
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L46
	bl	__stack_chk_fail
.L46:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L56:
	.align	2
.L55:
	.word	.LC0
	.word	number_cdev_registered
	.word	cdev_registered
	.size	call_cdev_functions, .-call_cdev_functions
	.align	2
	.global	pthread_mutex_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	pthread_mutex_init, %function
pthread_mutex_init:
	@ 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, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	strb	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldrb	r2, [fp, #-8]
	strb	r2, [r3]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	pthread_mutex_init, .-pthread_mutex_init
	.align	2
	.global	pthread_mutex_destroy
	.syntax unified
	.arm
	.fpu softvfp
	.type	pthread_mutex_destroy, %function
pthread_mutex_destroy:
	@ 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	pthread_mutex_destroy, .-pthread_mutex_destroy
	.align	2
	.global	pthread_mutex_lock
	.syntax unified
	.arm
	.fpu softvfp
	.type	pthread_mutex_lock, %function
pthread_mutex_lock:
	@ 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]
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	mov	r0, r3
	bl	__CPROVER_assume
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strb	r2, [r3]
	bl	__CPROVER_atomic_end
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pthread_mutex_lock, .-pthread_mutex_lock
	.section	.rodata
	.align	2
.LC1:
	.ascii	"pthread_mutex_unlock without lock\000"
	.text
	.align	2
	.global	pthread_mutex_unlock
	.syntax unified
	.arm
	.fpu softvfp
	.type	pthread_mutex_unlock, %function
pthread_mutex_unlock:
	@ 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]
	ldr	r3, [fp, #-8]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r1, .L65
	mov	r0, r3
	bl	__CPROVER_assert
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L66:
	.align	2
.L65:
	.word	.LC1
	.size	pthread_mutex_unlock, .-pthread_mutex_unlock
	.global	number_genhd_registered
	.bss
	.align	1
	.type	number_genhd_registered, %object
	.size	number_genhd_registered, 2
number_genhd_registered:
	.space	2
	.global	number_fixed_genhd_used
	.align	1
	.type	number_fixed_genhd_used, %object
	.size	number_fixed_genhd_used, 2
number_fixed_genhd_used:
	.space	2
	.comm	fixed_gendisk,1280,4
	.comm	genhd_registered,1680,8
	.comm	registered_pci_driver,248,8
	.comm	registered_irq,128,4
	.global	number_tasklet_registered
	.align	1
	.type	number_tasklet_registered, %object
	.size	number_tasklet_registered, 2
number_tasklet_registered:
	.space	2
	.comm	tasklet_registered,80,4
	.global	number_timer_registered
	.align	1
	.type	number_timer_registered, %object
	.size	number_timer_registered, 2
number_timer_registered:
	.space	2
	.comm	timer_registered,20,4
	.comm	shared_workqueue,40,4
	.comm	kernel_lock,8,4
	.text
	.align	2
	.global	init_kernel
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_kernel, %function
init_kernel:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r0, .L73
	bl	spin_lock_init
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L68
.L69:
	ldr	r2, .L73+4
	ldr	r3, [fp, #-8]
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L68:
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	ble	.L69
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L70
.L71:
	ldr	r2, .L73+8
	ldr	r3, [fp, #-8]
	mov	r1, #0
	str	r1, [r2, r3, lsl #3]
	ldr	r2, .L73+8
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	add	r3, r3, #4
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L70:
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	ble	.L71
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L74:
	.align	2
.L73:
	.word	kernel_lock
	.word	shared_workqueue
	.word	tasklet_registered
	.size	init_kernel, .-init_kernel
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	ddv_2, %function
ddv_2:
	@ 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]
.L86:
	bl	nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]
	sub	r3, r3, #1
	cmp	r3, #4
	ldrls	pc, [pc, r3, asl #2]
	b	.L89
.L78:
	.word	.L82
	.word	.L81
	.word	.L80
	.word	.L79
	.word	.L77
.L82:
	ldr	r3, .L91
	mov	r2, #2
	str	r2, [r3]
	bl	call_timer_functions
	ldr	r3, .L91
	mov	r2, #1
	str	r2, [r3]
	b	.L83
.L81:
	ldr	r3, .L91
	mov	r2, #2
	str	r2, [r3]
	bl	call_interrupt_handler
	ldr	r3, .L91
	mov	r2, #1
	str	r2, [r3]
	b	.L83
.L80:
	ldr	r3, .L91
	mov	r2, #1
	str	r2, [r3]
	bl	call_shared_workqueue_functions
	ldr	r3, .L91
	mov	r2, #1
	str	r2, [r3]
	b	.L83
.L79:
	ldr	r3, .L91
	mov	r2, #2
	str	r2, [r3]
	bl	call_tasklet_functions
	ldr	r3, .L91
	mov	r2, #1
	str	r2, [r3]
	b	.L83
.L77:
	ldr	r3, .L91
	mov	r2, #1
	str	r2, [r3]
	bl	call_pci_functions
	ldr	r3, .L91
	mov	r2, #1
	str	r2, [r3]
	b	.L83
.L89:
	nop
.L83:
	ldrh	r3, [fp, #-6]
	cmp	r3, #0
	beq	.L90
	b	.L86
.L90:
	nop
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L92:
	.align	2
.L91:
	.word	current_execution_context
	.size	ddv_2, .-ddv_2
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ddv
	.syntax unified
	.arm
	.fpu softvfp
	.type	ddv, %function
ddv:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	ldr	r3, .L101
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r0, fp, #16
	mov	r3, #0
	ldr	r2, .L101+4
	mov	r1, #0
	bl	pthread_create
.L96:
	ldr	r3, .L101+8
	mov	r2, #1
	str	r2, [r3]
	bl	call_cdev_functions
	bl	nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L100
	b	.L96
.L100:
	nop
	nop
	ldr	r3, .L101
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L98
	bl	__stack_chk_fail
.L98:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L102:
	.align	2
.L101:
	.word	.LC2
	.word	ddv_2
	.word	current_execution_context
	.size	ddv, .-ddv
	.align	2
	.global	call_ddv
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_ddv, %function
call_ddv:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L106
	mov	r2, #1
	str	r2, [r3]
	bl	init_kernel
	ldr	r3, .L106+4
	ldr	r3, [r3]
	blx	r3
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L104
	mvn	r3, #0
	b	.L105
.L104:
	bl	ddv
	ldr	r3, .L106
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, .L106+8
	ldr	r3, [r3]
	blx	r3
	mov	r3, #0
.L105:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L107:
	.align	2
.L106:
	.word	current_execution_context
	.word	_ddv_module_init
	.word	_ddv_module_exit
	.size	call_ddv, .-call_ddv
	.align	2
	.global	register_blkdev
	.syntax unified
	.arm
	.fpu softvfp
	.type	register_blkdev, %function
register_blkdev:
	@ 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	nondet_int
	str	r0, [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	register_blkdev, .-register_blkdev
	.align	2
	.global	unregister_blkdev
	.syntax unified
	.arm
	.fpu softvfp
	.type	unregister_blkdev, %function
unregister_blkdev:
	@ 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	unregister_blkdev, .-unregister_blkdev
	.align	2
	.global	alloc_disk
	.syntax unified
	.arm
	.fpu softvfp
	.type	alloc_disk, %function
alloc_disk:
	@ 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, #-16]
	ldr	r3, .L115
	ldrsh	r3, [r3]
	cmp	r3, #9
	bgt	.L113
	ldr	r3, .L115
	ldrsh	r3, [r3]
	lsl	r3, r3, #7
	ldr	r2, .L115+4
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #8]
	ldr	r3, .L115
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L115
	strh	r3, [r2]	@ movhi
	ldr	r3, [fp, #-8]
	b	.L114
.L113:
	mov	r3, #0
.L114:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L116:
	.align	2
.L115:
	.word	number_fixed_genhd_used
	.word	fixed_gendisk
	.size	alloc_disk, .-alloc_disk
	.align	2
	.global	add_disk
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_disk, %function
add_disk:
	@ 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]
	ldr	r3, .L121
	ldrsh	r3, [r3]
	cmp	r3, #9
	bgt	.L120
	ldr	r3, .L121
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r1, .L121+4
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #3
	mov	r2, r3
	add	r3, r1, r2
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	mov	r0, #16
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-8]
	ldr	r3, .L121
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r1, .L121+4
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #3
	mov	r2, r3
	add	r3, r1, r2
	add	r3, r3, #12
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, .L121
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r1, .L121+4
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #3
	mov	r2, r3
	add	r3, r1, r2
	add	r3, r3, #12
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	str	r2, [r3, #4]
	ldr	r3, .L121
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L121
	strh	r3, [r2]	@ movhi
	nop
.L120:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L122:
	.align	2
.L121:
	.word	number_genhd_registered
	.word	genhd_registered
	.size	add_disk, .-add_disk
	.align	2
	.global	del_gendisk
	.syntax unified
	.arm
	.fpu softvfp
	.type	del_gendisk, %function
del_gendisk:
	@ 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, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L124
.L126:
	ldr	r1, .L128
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #3
	mov	r2, r3
	add	r3, r1, r2
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bne	.L125
	ldr	r1, .L128
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #3
	mov	r2, r3
	add	r3, r1, r2
	mov	r2, #0
	str	r2, [r3]
.L125:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L124:
	ldr	r3, .L128+4
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	cmp	r3, r2
	blt	.L126
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L129:
	.align	2
.L128:
	.word	genhd_registered
	.word	number_genhd_registered
	.size	del_gendisk, .-del_gendisk
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	call_interrupt_handler
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_interrupt_handler, %function
call_interrupt_handler:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	ldr	r3, .L135
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	bl	nondet_int
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	strh	r3, [fp, #-26]	@ movhi
	ldrh	r3, [fp, #-26]
	cmp	r3, #15
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	__CPROVER_assume
	ldrh	r3, [fp, #-26]
	ldr	r2, .L135+4
	ldr	r3, [r2, r3, lsl #3]
	cmp	r3, #0
	beq	.L134
	ldrh	r3, [fp, #-26]
	ldr	r2, .L135+4
	ldr	r4, [r2, r3, lsl #3]
	ldrh	r0, [fp, #-26]
	ldrh	r3, [fp, #-26]
	ldr	r2, .L135+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	sub	r2, fp, #24
	mov	r1, r3
	blx	r4
	nop
.L134:
	nop
	ldr	r3, .L135
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L133
	bl	__stack_chk_fail
.L133:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L136:
	.align	2
.L135:
	.word	.LC3
	.word	registered_irq
	.size	call_interrupt_handler, .-call_interrupt_handler
	.comm	fixed_request_queue,480,4
	.global	number_request_queue_used
	.bss
	.align	2
	.type	number_request_queue_used, %object
	.size	number_request_queue_used, 4
number_request_queue_used:
	.space	4
	.text
	.align	2
	.global	get_fixed_request_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_fixed_request_queue, %function
get_fixed_request_queue:
	@ 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
	ldr	r3, .L140
	ldr	r3, [r3]
	cmp	r3, #9
	bgt	.L138
	ldr	r3, .L140
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L140
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L140
	str	r3, [r2]
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #4
	ldr	r2, .L140+4
	add	r3, r3, r2
	b	.L139
.L138:
	mov	r3, #0
.L139:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L141:
	.align	2
.L140:
	.word	number_request_queue_used
	.word	fixed_request_queue
	.size	get_fixed_request_queue, .-get_fixed_request_queue
	.align	2
	.global	blk_init_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_init_queue, %function
blk_init_queue:
	@ 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	nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L143
	bl	get_fixed_request_queue
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	b	.L144
.L143:
	mov	r3, #0
.L144:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	blk_init_queue, .-blk_init_queue
	.align	2
	.global	blk_alloc_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_alloc_queue, %function
blk_alloc_queue:
	@ 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	nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L146
	bl	get_fixed_request_queue
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	b	.L147
.L146:
	mov	r3, #0
.L147:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	blk_alloc_queue, .-blk_alloc_queue
	.align	2
	.global	blk_queue_make_request
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_queue_make_request, %function
blk_queue_make_request:
	@ 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]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3, #4]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	blk_queue_make_request, .-blk_queue_make_request
	.align	2
	.global	end_request
	.syntax unified
	.arm
	.fpu softvfp
	.type	end_request, %function
end_request:
	@ 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, #-16]
	str	r1, [fp, #-20]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3, #40]
	ldr	r3, [r3, #48]
	ldr	r3, [r3, #40]
	str	r3, [fp, #-8]
	ldr	r1, .L152
	ldr	r2, [fp, #-8]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r2, r3, #3
	sub	r2, r2, r3
	lsl	r3, r2, #3
	mov	r2, r3
	add	r3, r1, r2
	add	r3, r3, #164
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L153:
	.align	2
.L152:
	.word	genhd_registered
	.size	end_request, .-end_request
	.align	2
	.global	blk_queue_hardsect_size
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_queue_hardsect_size, %function
blk_queue_hardsect_size:
	@ 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
	strh	r3, [fp, #-10]	@ movhi
	ldr	r3, [fp, #-8]
	ldrh	r2, [fp, #-10]	@ movhi
	strh	r2, [r3, #36]	@ movhi
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	blk_queue_hardsect_size, .-blk_queue_hardsect_size
	.align	2
	.global	blk_cleanup_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_cleanup_queue, %function
blk_cleanup_queue:
	@ 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]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #44]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	blk_cleanup_queue, .-blk_cleanup_queue
	.global	applicom_pci_devnames
	.section	.rodata
	.align	2
.LC4:
	.ascii	"PCI board\000"
	.align	2
.LC5:
	.ascii	"PCI2000IBS / PCI2000CAN\000"
	.align	2
.LC6:
	.ascii	"PCI2000PFB\000"
	.data
	.align	2
	.type	applicom_pci_devnames, %object
	.size	applicom_pci_devnames, 12
applicom_pci_devnames:
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.global	applicom_pci_tbl
	.align	2
	.type	applicom_pci_tbl, %object
	.size	applicom_pci_tbl, 112
applicom_pci_tbl:
	.word	5001
	.word	1
	.word	-1
	.word	-1
	.word	0
	.word	0
	.word	0
	.word	5001
	.word	2
	.word	-1
	.word	-1
	.word	0
	.word	0
	.word	0
	.word	5001
	.word	3
	.word	-1
	.word	-1
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.global	_ddv_module_author
	.align	2
	.type	_ddv_module_author, %object
	.size	_ddv_module_author, 41
_ddv_module_author:
	.ascii	"David Woodhouse & Applicom International\000"
	.global	_ddv_module_description
	.align	2
	.type	_ddv_module_description, %object
	.size	_ddv_module_description, 34
_ddv_module_description:
	.ascii	"Driver for Applicom Profibus card\000"
	.global	_ddv_module_license
	.align	2
	.type	_ddv_module_license, %object
	.size	_ddv_module_license, 4
_ddv_module_license:
	.ascii	"GPL\000"
	.global	_ddv_module_supported_device
	.align	2
	.type	_ddv_module_supported_device, %object
	.size	_ddv_module_supported_device, 3
_ddv_module_supported_device:
	.ascii	"ac\000"
	.comm	apbs,256,4
	.global	irq
	.bss
	.align	2
	.type	irq, %object
	.size	irq, 4
irq:
	.space	4
	.global	mem
	.align	2
	.type	mem, %object
	.size	mem, 4
mem:
	.space	4
	.global	_ddv_module_param_irq
	.data
	.align	2
	.type	_ddv_module_param_irq, %object
	.size	_ddv_module_param_irq, 26
_ddv_module_param_irq:
	.ascii	"IRQ of the Applicom board\000"
	.global	_ddv_module_param_mem
	.align	2
	.type	_ddv_module_param_mem, %object
	.size	_ddv_module_param_mem, 40
_ddv_module_param_mem:
	.ascii	"Shared Memory Address of Applicom board\000"
	.comm	numboards,4,4
	.comm	Dummy,1,1
	.global	FlagSleepRec
	.align	2
	.type	FlagSleepRec, %object
	.size	FlagSleepRec, 12
FlagSleepRec:
	.word	0
	.word	0
	.word	1
	.comm	WriteErrorCount,4,4
	.comm	ReadErrorCount,4,4
	.comm	DeviceErrorCount,4,4
	.global	ac_fops
	.section	.rodata
	.align	2
	.type	ac_fops, %object
	.size	ac_fops, 100
ac_fops:
	.word	0
	.word	no_llseek
	.word	ac_read
	.word	ac_write
	.word	0
	.word	0
	.word	ac_ioctl
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.global	ac_miscdev
	.align	2
.LC7:
	.ascii	"ac\000"
	.data
	.align	2
	.type	ac_miscdev, %object
	.size	ac_miscdev, 12
ac_miscdev:
	.word	157
	.word	.LC7
	.word	ac_fops
	.comm	dummy,4,4
	.section	.rodata
	.align	2
.LC8:
	.ascii	"<4>Board #%d (at 0x%lx) is out of range (1 <= x <= "
	.ascii	"%d).\012\000"
	.align	2
.LC9:
	.ascii	"<4>Board #%d (at 0x%lx) conflicts with previous boa"
	.ascii	"rd #%d (at 0x%lx)\012\000"
	.text
	.align	2
	.global	ac_register_board
	.syntax unified
	.arm
	.fpu softvfp
	.type	ac_register_board, %function
ac_register_board:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	mov	r3, r2
	strb	r3, [fp, #-21]
	ldr	r3, [fp, #-20]
	add	r3, r3, #18
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L159
	mov	r3, #0
	b	.L160
.L159:
	ldr	r3, [fp, #-20]
	add	r3, r3, #19
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-8]
	ldrb	r3, [fp, #-8]	@ zero_extendqisi2
	cmp	r3, #85
	beq	.L161
	mov	r3, #0
	b	.L160
.L161:
	ldr	r3, [fp, #-20]
	add	r3, r3, #20
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-7]
	ldrb	r3, [fp, #-7]	@ zero_extendqisi2
	cmp	r3, #170
	beq	.L162
	mov	r3, #0
	b	.L160
.L162:
	ldr	r3, [fp, #-20]
	add	r3, r3, #21
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-6]
	ldrb	r3, [fp, #-6]	@ zero_extendqisi2
	cmp	r3, #255
	beq	.L163
	mov	r3, #0
	b	.L160
.L163:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L164
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-21]
.L164:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L165
	ldrb	r1, [fp, #-21]	@ zero_extendqisi2
	mov	r3, #8
	ldr	r2, [fp, #-16]
	ldr	r0, .L168
	bl	printk
	mov	r3, #0
	b	.L160
.L165:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	cmp	r3, #8
	bls	.L166
	ldrb	r1, [fp, #-21]	@ zero_extendqisi2
	mov	r3, #8
	ldr	r2, [fp, #-16]
	ldr	r0, .L168
	bl	printk
	mov	r3, #0
	b	.L160
.L166:
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	sub	r3, r3, #1
	ldr	r2, .L168+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L167
	ldrb	r1, [fp, #-21]	@ zero_extendqisi2
	ldrb	r2, [fp, #-21]	@ zero_extendqisi2
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	sub	r3, r3, #1
	ldr	r0, .L168+4
	ldr	r3, [r0, r3, lsl #5]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-16]
	ldr	r0, .L168+8
	bl	printk
	mov	r3, #0
	b	.L160
.L167:
	ldrb	r3, [fp, #-21]
	sub	r3, r3, #1
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	ldr	r1, .L168+4
	ldr	r2, [fp, #-16]
	str	r2, [r1, r3, lsl #5]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	ldr	r2, .L168+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [fp, #-20]
	str	r2, [r3, #4]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r3, #8
	ldr	r2, .L168+4
	add	r3, r3, r2
	mov	r0, r3
	bl	init_waitqueue_head
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L168+4
	add	r3, r3, r2
	mov	r0, r3
	bl	spin_lock_init
	ldr	r3, [fp, #-20]
	add	r3, r3, #1020
	add	r3, r3, #3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]
	strb	r3, [fp, #-10]
	ldr	r3, .L168+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L168+12
	str	r3, [r2]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	add	r3, r3, #1
.L160:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L169:
	.align	2
.L168:
	.word	.LC8
	.word	apbs
	.word	.LC9
	.word	numboards
	.size	ac_register_board, .-ac_register_board
	.align	2
	.global	applicom_exit
	.syntax unified
	.arm
	.fpu softvfp
	.type	applicom_exit, %function
applicom_exit:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r0, .L178
	bl	misc_deregister
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L171
.L175:
	ldr	r2, .L178+4
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L177
	ldr	r2, .L178+4
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L174
	ldr	r2, .L178+4
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #20]
	ldr	r1, .L178+8
	mov	r0, r3
	bl	free_irq
.L174:
	ldr	r2, .L178+4
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	iounmap
	b	.L173
.L177:
	nop
.L173:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L171:
	ldr	r3, [fp, #-8]
	cmp	r3, #7
	bls	.L175
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L179:
	.align	2
.L178:
	.word	ac_miscdev
	.word	apbs
	.word	dummy
	.size	applicom_exit, .-applicom_exit
	.section	.rodata
	.align	2
.LC10:
	.ascii	"<6>Applicom driver: $Id: ac.c,v 1.30 2000/03/22 16:"
	.ascii	"03:57 dwmw2 Exp $\012\000"
	.align	2
.LC11:
	.ascii	"<6>ac.o: Failed to ioremap PCI memory space at 0x%l"
	.ascii	"lx\012\000"
	.align	2
.LC12:
	.ascii	"<6>Applicom %s found at mem 0x%llx, irq %d\012\000"
	.align	2
.LC13:
	.ascii	"<6>ac.o: PCI Applicom device doesn't have correct s"
	.ascii	"ignature.\012\000"
	.align	2
.LC14:
	.ascii	"Applicom PCI\000"
	.align	2
.LC15:
	.ascii	"<6>Could not allocate IRQ %d for PCI Applicom devic"
	.ascii	"e.\012\000"
	.align	2
.LC16:
	.ascii	"<6>ac.o: No PCI boards found.\012\000"
	.align	2
.LC17:
	.ascii	"<6>ac.o: For an ISA board you must supply memory an"
	.ascii	"d irq parameters.\012\000"
	.align	2
.LC18:
	.ascii	"<6>ac.o: Failed to ioremap the ISA card's memory sp"
	.ascii	"ace (slot #%d)\012\000"
	.align	2
.LC19:
	.ascii	"<5>Applicom ISA card found at mem 0x%lx, irq %d\012"
	.ascii	"\000"
	.align	2
.LC20:
	.ascii	"Applicom ISA\000"
	.align	2
.LC21:
	.ascii	"<4>Could not allocate IRQ %d for ISA Applicom devic"
	.ascii	"e.\012\000"
	.align	2
.LC22:
	.ascii	"<4>ac.o: No valid ISA Applicom boards found at mem "
	.ascii	"0x%lx\012\000"
	.align	2
.LC23:
	.ascii	"<4>ac.o: Unable to register misc device\012\000"
	.align	2
.LC24:
	.ascii	"<6>Applicom board %d: %s, PROM V%d.%d\000"
	.align	2
.LC25:
	.ascii	" S/N %d\012\000"
	.align	2
.LC26:
	.ascii	"\012\000"
	.align	2
.LC27:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	applicom_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	applicom_init, %function
applicom_init:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	ldr	r3, .L233
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-72]
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r0, .L233+4
	bl	printk
	ldr	r3, .L233+8
	mov	r2, #0
	str	r2, [r3]
.L192:
	ldr	r1, [fp, #-68]
	mov	r0, #16711680
	bl	pci_get_class
	str	r0, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #0
	beq	.L224
	ldr	r3, [fp, #-68]
	ldrh	r3, [r3, #8]
	ldr	r2, .L233+12
	cmp	r3, r2
	bne	.L225
	ldr	r3, [fp, #-68]
	ldrh	r3, [r3, #10]
	cmp	r3, #3
	bhi	.L226
	ldr	r3, [fp, #-68]
	ldrh	r3, [r3, #10]
	cmp	r3, #0
	beq	.L227
	ldr	r0, [fp, #-68]
	bl	pci_enable_device
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	beq	.L187
	mvn	r3, #4
	b	.L221
.L187:
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #40]
	mov	r1, #2048
	mov	r0, r3
	bl	ioremap
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bne	.L189
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #40]
	mov	r2, r3
	mov	r3, #0
	ldr	r0, .L233+16
	bl	printk
	ldr	r0, [fp, #-68]
	bl	pci_disable_device
	mvn	r3, #4
	b	.L221
.L189:
	ldr	r3, [fp, #-68]
	ldrh	r3, [r3, #10]
	sub	r3, r3, #1
	ldr	r2, .L233+20
	ldr	r0, [r2, r3, lsl #2]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #40]
	mov	r2, r3
	mov	r3, #0
	ldr	r1, [fp, #-68]
	ldr	r1, [r1, #32]
	str	r1, [sp]
	mov	r1, r0
	ldr	r0, .L233+24
	bl	printk
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #40]
	mov	r2, #0
	ldr	r1, [fp, #-56]
	mov	r0, r3
	bl	ac_register_board
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L190
	ldr	r0, .L233+28
	bl	printk
	ldr	r0, [fp, #-56]
	bl	iounmap
	ldr	r0, [fp, #-68]
	bl	pci_disable_device
	b	.L184
.L190:
	ldr	r3, [fp, #-68]
	ldr	r0, [r3, #32]
	ldr	r3, .L233+32
	str	r3, [sp]
	ldr	r3, .L233+36
	mov	r2, #128
	ldr	r1, .L233+40
	bl	request_irq
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L191
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #32]
	mov	r1, r3
	ldr	r0, .L233+44
	bl	printk
	ldr	r0, [fp, #-56]
	bl	iounmap
	ldr	r0, [fp, #-68]
	bl	pci_disable_device
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	ldr	r2, .L233+48
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L184
.L191:
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	ldr	r2, .L233+48
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #2
	mov	r1, r3
	mov	r0, #64
	bl	writeb
	ldr	r3, [fp, #-68]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	mov	r1, r2
	ldr	r2, .L233+48
	lsl	r3, r3, #5
	add	r3, r2, r3
	str	r1, [r3, #20]
	b	.L192
.L225:
	nop
	b	.L192
.L226:
	nop
	b	.L192
.L227:
	nop
.L184:
	b	.L192
.L224:
	nop
	ldr	r3, .L233+52
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L228
	ldr	r3, .L233+56
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L195
	b	.L194
.L228:
	nop
.L194:
	ldr	r3, .L233+8
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L229
	ldr	r0, .L233+60
	bl	printk
	ldr	r0, .L233+64
	bl	printk
	mvn	r3, #5
	b	.L221
.L195:
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L198
.L205:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #11
	mov	r2, r3
	ldr	r3, .L233+52
	ldr	r3, [r3]
	add	r3, r2, r3
	mov	r1, #2048
	mov	r0, r3
	bl	ioremap
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bne	.L199
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	mov	r1, r3
	ldr	r0, .L233+68
	bl	printk
	b	.L200
.L199:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #11
	mov	r2, r3
	ldr	r3, .L233+52
	ldr	r3, [r3]
	add	r0, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	add	r3, r3, #1
	and	r3, r3, #255
	mov	r2, r3
	ldr	r1, [fp, #-56]
	bl	ac_register_board
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L201
	ldr	r0, [fp, #-56]
	bl	iounmap
	b	.L200
.L201:
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #11
	mov	r2, r3
	ldr	r3, .L233+52
	ldr	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L233+56
	ldr	r2, [r2]
	mov	r1, r3
	ldr	r0, .L233+72
	bl	printk
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L202
	ldr	r3, .L233+56
	ldr	r0, [r3]
	ldr	r3, .L233+32
	str	r3, [sp]
	ldr	r3, .L233+76
	mov	r2, #128
	ldr	r1, .L233+40
	bl	request_irq
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L203
	ldr	r3, .L233+56
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L233+80
	bl	printk
	ldr	r0, [fp, #-56]
	bl	iounmap
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	ldr	r2, .L233+48
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #4]
	b	.L204
.L203:
	ldr	r3, .L233+56
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	mov	r1, r2
	ldr	r2, .L233+48
	lsl	r3, r3, #5
	add	r3, r2, r3
	str	r1, [r3, #20]
	b	.L204
.L202:
	ldr	r3, [fp, #-52]
	sub	r3, r3, #1
	ldr	r2, .L233+48
	lsl	r3, r3, #5
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #20]
.L204:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L200:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L198:
	ldr	r3, [fp, #-76]
	cmp	r3, #3
	ble	.L205
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L230
	ldr	r3, .L233+52
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L233+84
	bl	printk
	b	.L197
.L229:
	nop
	b	.L197
.L230:
	nop
.L197:
	ldr	r0, .L233+88
	bl	init_waitqueue_head
	ldr	r3, .L233+92
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L233+96
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L233+100
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L233+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L206
	ldr	r0, .L233+104
	bl	misc_register
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L207
	ldr	r0, .L233+108
	bl	printk
	nop
.L208:
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L216
.L207:
	mov	r3, #0
	str	r3, [fp, #-76]
	b	.L209
.L215:
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L231
	mov	r3, #0
	str	r3, [fp, #-64]
	b	.L212
.L213:
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r3, #960
	add	r3, r2, r3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-77]
	sub	r2, fp, #36
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	ldrb	r2, [fp, #-77]
	strb	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #1
	str	r3, [fp, #-64]
.L212:
	ldr	r3, [fp, #-64]
	cmp	r3, #25
	ble	.L213
	sub	r2, fp, #36
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-82]
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-81]
	ldr	r3, [fp, #-76]
	add	r1, r3, #1
	ldrb	r3, [fp, #-81]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r0, r3
	ldrb	r3, [fp, #-82]	@ zero_extendqisi2
	and	r3, r3, #15
	sub	r2, fp, #36
	str	r3, [sp]
	mov	r3, r0
	ldr	r0, .L233+112
	bl	printk
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #984
	add	r3, r3, #2
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-80]
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #984
	add	r3, r3, #3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-79]
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #988
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-78]
	ldrb	r3, [fp, #-80]	@ zero_extendqisi2
	lsl	r2, r3, #16
	ldrb	r3, [fp, #-79]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r2, r2, r3
	ldrb	r3, [fp, #-78]	@ zero_extendqisi2
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	beq	.L214
	ldr	r1, [fp, #-64]
	ldr	r0, .L233+116
	bl	printk
	b	.L211
.L214:
	ldr	r0, .L233+120
	bl	printk
	b	.L211
.L231:
	nop
.L211:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L209:
	ldr	r3, [fp, #-76]
	cmp	r3, #7
	ble	.L215
	mov	r3, #0
	b	.L221
.L206:
	mvn	r3, #5
	b	.L221
.L220:
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L232
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #20]
	cmp	r3, #0
	beq	.L219
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #20]
	ldr	r1, .L233+32
	mov	r0, r3
	bl	free_irq
.L219:
	ldr	r2, .L233+48
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	iounmap
	b	.L218
.L232:
	nop
.L218:
	ldr	r3, [fp, #-76]
	add	r3, r3, #1
	str	r3, [fp, #-76]
.L216:
	ldr	r3, [fp, #-76]
	cmp	r3, #7
	ble	.L220
	ldr	r0, [fp, #-68]
	bl	pci_disable_device
	ldr	r3, [fp, #-40]
.L221:
	ldr	r2, .L233
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L222
	bl	__stack_chk_fail
.L222:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L234:
	.align	2
.L233:
	.word	.LC27
	.word	.LC10
	.word	numboards
	.word	5001
	.word	.LC11
	.word	applicom_pci_devnames
	.word	.LC12
	.word	.LC13
	.word	dummy
	.word	.LC14
	.word	ac_interrupt
	.word	.LC15
	.word	apbs
	.word	mem
	.word	irq
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.word	.LC21
	.word	.LC22
	.word	FlagSleepRec
	.word	WriteErrorCount
	.word	ReadErrorCount
	.word	DeviceErrorCount
	.word	ac_miscdev
	.word	.LC23
	.word	.LC24
	.word	.LC25
	.word	.LC26
	.size	applicom_init, .-applicom_init
	.global	_ddv_tmp_init
	.data
	.align	2
	.type	_ddv_tmp_init, %object
	.size	_ddv_tmp_init, 4
_ddv_tmp_init:
	.word	applicom_init
	.global	_ddv_tmp_exit
	.align	2
	.type	_ddv_tmp_exit, %object
	.size	_ddv_tmp_exit, 4
_ddv_tmp_exit:
	.word	applicom_exit
	.align	2
	.type	warncount, %object
	.size	warncount, 4
warncount:
	.word	5
	.section	.rodata
	.align	2
.LC28:
	.ascii	"<6>Hmmm. write() of Applicom card, length %zd != ex"
	.ascii	"pected %zd\012\000"
	.align	2
.LC29:
	.ascii	"<4>APPLICOM driver write error board %d, DataFromPc"
	.ascii	"Ready = %d\012\000"
	.align	2
.LC30:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ac_write
	.syntax unified
	.arm
	.fpu softvfp
	.type	ac_write, %function
ac_write:
	@ args = 0, pretend = 0, frame = 448
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #448
	str	r0, [fp, #-440]
	str	r1, [fp, #-444]
	str	r2, [fp, #-448]
	str	r3, [fp, #-452]
	ldr	r3, .L255
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-448]
	cmp	r3, #368
	beq	.L236
	ldr	r3, .L255+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L237
	mov	r2, #368
	ldr	r1, [fp, #-448]
	ldr	r0, .L255+8
	bl	printk
	ldr	r3, .L255+4
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L255+4
	str	r3, [r2]
.L237:
	mvn	r3, #21
	b	.L251
.L236:
	sub	r3, fp, #376
	mov	r2, #64
	ldr	r1, [fp, #-444]
	mov	r0, r3
	bl	copy_from_user
	str	r0, [fp, #-412]
	ldr	r3, [fp, #-412]
	cmp	r3, #0
	beq	.L239
	mvn	r3, #13
	b	.L251
.L239:
	ldr	r3, [fp, #-444]
	add	r1, r3, #64
	sub	r3, fp, #312
	mov	r2, #304
	mov	r0, r3
	bl	copy_from_user
	str	r0, [fp, #-408]
	ldr	r3, [fp, #-408]
	cmp	r3, #0
	beq	.L240
	mvn	r3, #13
	b	.L251
.L240:
	ldrb	r3, [fp, #-345]	@ zero_extendqisi2
	str	r3, [fp, #-404]
	ldrb	r3, [fp, #-368]
	strb	r3, [fp, #-435]
	ldr	r3, [fp, #-404]
	sub	r3, r3, #1
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-404]
	cmp	r3, #0
	bne	.L241
	mvn	r3, #21
	b	.L251
.L241:
	ldr	r3, [fp, #-404]
	cmp	r3, #8
	bls	.L242
	mvn	r3, #21
	b	.L251
.L242:
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L243
	mvn	r3, #21
	b	.L251
.L243:
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L255+12
	add	r3, r3, r2
	ldr	r1, [fp, #-396]
	mov	r0, r3
	bl	spin_lock_irqsave
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-434]
	ldrb	r3, [fp, #-434]	@ zero_extendqisi2
	cmp	r3, #2
	bls	.L244
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-430]
	ldr	r2, .L255+16
	ldrb	r3, [fp, #-430]
	strb	r3, [r2]
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L255+12
	add	r3, r3, r2
	ldr	r1, [fp, #-396]
	mov	r0, r3
	bl	spin_unlock_irqrestore
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-429]
	ldrb	r3, [fp, #-429]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-400]
	ldr	r0, .L255+20
	bl	printk
	ldr	r3, .L255+24
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L255+24
	str	r3, [r2]
	mvn	r3, #4
	b	.L251
.L244:
	mov	r0, #1
	bl	set_current_state
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #8
	ldr	r2, .L255+12
	add	r3, r3, r2
	sub	r2, fp, #428
	mov	r1, r2
	mov	r0, r3
	bl	add_wait_queue
.L248:
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-433]
	ldrb	r3, [fp, #-433]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L254
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-432]
	ldr	r2, .L255+16
	ldrb	r3, [fp, #-432]
	strb	r3, [r2]
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L255+12
	add	r3, r3, r2
	ldr	r1, [fp, #-396]
	mov	r0, r3
	bl	spin_unlock_irqrestore
	bl	schedule
	bl	get_current
	str	r0, [fp, #-392]
	ldr	r0, [fp, #-392]
	bl	signal_pending
	str	r0, [fp, #-388]
	ldr	r3, [fp, #-388]
	cmp	r3, #0
	beq	.L247
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #8
	ldr	r2, .L255+12
	add	r3, r3, r2
	sub	r2, fp, #428
	mov	r1, r2
	mov	r0, r3
	bl	remove_wait_queue
	mvn	r3, #3
	b	.L251
.L247:
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L255+12
	add	r3, r3, r2
	ldr	r1, [fp, #-396]
	mov	r0, r3
	bl	spin_lock_irqsave
	mov	r0, #1
	bl	set_current_state
	b	.L248
.L254:
	nop
	mov	r0, #0
	bl	set_current_state
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #8
	ldr	r2, .L255+12
	add	r3, r3, r2
	sub	r2, fp, #428
	mov	r1, r2
	mov	r0, r3
	bl	remove_wait_queue
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r1, r3
	mov	r0, #1
	bl	writeb
	sub	r3, fp, #312
	str	r3, [fp, #-424]
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #368
	str	r3, [fp, #-420]
	mov	r3, #0
	str	r3, [fp, #-416]
	b	.L249
.L250:
	ldr	r3, [fp, #-420]
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-420]
	add	r3, r3, #1
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-424]
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-424]
	add	r3, r3, #1
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-380]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r1, [fp, #-384]
	mov	r0, r3
	bl	writeb
	ldr	r3, [fp, #-416]
	add	r3, r3, #1
	str	r3, [fp, #-416]
.L249:
	ldr	r3, [fp, #-416]
	cmp	r3, #304
	bcc	.L250
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #6
	mov	r1, r3
	mov	r0, #32
	bl	writeb
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #7
	mov	r1, r3
	mov	r0, #255
	bl	writeb
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r2, r3, #8
	ldrb	r3, [fp, #-435]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	writeb
	ldr	r3, [fp, #-404]
	and	r2, r3, #255
	ldr	r1, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #9
	mov	r1, r3
	mov	r0, r2
	bl	writeb
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r1, r3
	mov	r0, #2
	bl	writeb
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #2
	mov	r1, r3
	mov	r0, #1
	bl	writeb
	ldr	r2, .L255+12
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-431]
	ldr	r2, .L255+16
	ldrb	r3, [fp, #-431]
	strb	r3, [r2]
	ldr	r3, [fp, #-400]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L255+12
	add	r3, r3, r2
	ldr	r1, [fp, #-396]
	mov	r0, r3
	bl	spin_unlock_irqrestore
	mov	r3, #0
.L251:
	ldr	r2, .L255
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L252
	bl	__stack_chk_fail
.L252:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L256:
	.align	2
.L255:
	.word	.LC30
	.word	warncount
	.word	.LC28
	.word	apbs
	.word	Dummy
	.word	.LC29
	.word	DeviceErrorCount
	.size	ac_write, .-ac_write
	.align	2
	.global	do_ac_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_ac_read, %function
do_ac_read:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	str	r3, [fp, #-44]
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #64
	str	r3, [fp, #-24]
	sub	r3, fp, #44
	str	r3, [fp, #-20]
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1
	mov	r0, r3
	bl	readb
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	strb	r2, [r3, #1]
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #2
	mov	r0, r3
	bl	readb
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	strb	r2, [r3, #2]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L258
.L259:
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
	ldr	r0, [fp, #-8]
	bl	readb
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-12]
	strb	r2, [r3]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L258:
	ldr	r3, [fp, #-16]
	cmp	r3, #304
	bcc	.L259
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #14
	mov	r1, r3
	mov	r0, #1
	bl	writeb
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #17
	mov	r1, r3
	mov	r0, #1
	bl	writeb
	ldr	r3, [fp, #-32]
	and	r3, r3, #255
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r1, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	writeb
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-26]
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r2, r3, #15
	ldrb	r3, [fp, #-26]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	writeb
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #14
	mov	r1, r3
	mov	r0, #2
	bl	writeb
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r1, r3
	mov	r0, #0
	bl	writeb
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #2
	mov	r1, r3
	mov	r0, #2
	bl	writeb
	ldr	r2, .L261
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-25]
	ldr	r2, .L261+4
	ldrb	r3, [fp, #-25]
	strb	r3, [r2]
	mov	r3, #368
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L262:
	.align	2
.L261:
	.word	apbs
	.word	Dummy
	.size	do_ac_read, .-do_ac_read
	.section	.rodata
	.align	2
.LC31:
	.ascii	"<4>Hmmm. read() of Applicom card, length %zd != exp"
	.ascii	"ected %zd\012\000"
	.align	2
.LC32:
	.ascii	"<4>APPLICOM driver read error board %d, DataToPcRea"
	.ascii	"dy = %d\012\000"
	.align	2
.LC33:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ac_read
	.syntax unified
	.arm
	.fpu softvfp
	.type	ac_read, %function
ac_read:
	@ args = 0, pretend = 0, frame = 424
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #424
	str	r0, [fp, #-416]
	str	r1, [fp, #-420]
	str	r2, [fp, #-424]
	str	r3, [fp, #-428]
	ldr	r3, .L278
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-424]
	cmp	r3, #368
	beq	.L264
	mov	r2, #368
	ldr	r1, [fp, #-424]
	ldr	r0, .L278+4
	bl	printk
	mvn	r3, #21
	b	.L275
.L264:
	mov	r0, #1
	bl	set_current_state
	sub	r3, fp, #408
	mov	r1, r3
	ldr	r0, .L278+8
	bl	add_wait_queue
	mov	r3, #0
	str	r3, [fp, #-404]
	b	.L266
.L273:
	ldr	r2, .L278+12
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L277
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L278+12
	add	r3, r3, r2
	ldr	r1, [fp, #-388]
	mov	r0, r3
	bl	spin_lock_irqsave
	ldr	r2, .L278+12
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-412]
	ldrb	r3, [fp, #-412]	@ zero_extendqisi2
	cmp	r3, #2
	bne	.L269
	ldr	r0, [fp, #-404]
	sub	r3, fp, #312
	sub	r2, fp, #376
	ldr	r1, [fp, #-420]
	bl	do_ac_read
	str	r0, [fp, #-400]
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L278+12
	add	r3, r3, r2
	ldr	r1, [fp, #-388]
	mov	r0, r3
	bl	spin_unlock_irqrestore
	mov	r0, #0
	bl	set_current_state
	sub	r3, fp, #408
	mov	r1, r3
	ldr	r0, .L278+8
	bl	remove_wait_queue
	sub	r3, fp, #376
	mov	r2, #64
	mov	r1, r3
	ldr	r0, [fp, #-420]
	bl	copy_to_user
	str	r0, [fp, #-384]
	ldr	r3, [fp, #-384]
	cmp	r3, #0
	beq	.L270
	mvn	r3, #13
	b	.L275
.L270:
	ldr	r3, [fp, #-420]
	add	r3, r3, #64
	sub	r1, fp, #312
	mov	r2, #304
	mov	r0, r3
	bl	copy_to_user
	str	r0, [fp, #-380]
	ldr	r3, [fp, #-380]
	cmp	r3, #0
	beq	.L271
	mvn	r3, #13
	b	.L275
.L271:
	ldrb	r3, [fp, #-412]	@ zero_extendqisi2
	b	.L275
.L269:
	ldrb	r3, [fp, #-412]	@ zero_extendqisi2
	cmp	r3, #2
	bls	.L272
	ldr	r2, .L278+12
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-410]
	ldr	r2, .L278+16
	ldrb	r3, [fp, #-410]
	strb	r3, [r2]
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L278+12
	add	r3, r3, r2
	ldr	r1, [fp, #-388]
	mov	r0, r3
	bl	spin_unlock_irqrestore
	mov	r0, #0
	bl	set_current_state
	sub	r3, fp, #408
	mov	r1, r3
	ldr	r0, .L278+8
	bl	remove_wait_queue
	ldr	r2, .L278+12
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-409]
	ldrb	r3, [fp, #-409]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r1, [fp, #-404]
	ldr	r0, .L278+20
	bl	printk
	ldr	r3, .L278+24
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L278+24
	str	r3, [r2]
	mvn	r3, #4
	b	.L275
.L272:
	ldr	r2, .L278+12
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-411]
	ldr	r2, .L278+16
	ldrb	r3, [fp, #-411]
	strb	r3, [r2]
	ldr	r3, [fp, #-404]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L278+12
	add	r3, r3, r2
	ldr	r1, [fp, #-388]
	mov	r0, r3
	bl	spin_unlock_irqrestore
	b	.L268
.L277:
	nop
.L268:
	ldr	r3, [fp, #-404]
	add	r3, r3, #1
	str	r3, [fp, #-404]
.L266:
	ldr	r3, [fp, #-404]
	cmp	r3, #7
	bls	.L273
	bl	schedule
	sub	r3, fp, #408
	mov	r1, r3
	ldr	r0, .L278+8
	bl	remove_wait_queue
	bl	get_current
	str	r0, [fp, #-396]
	ldr	r0, [fp, #-396]
	bl	signal_pending
	str	r0, [fp, #-392]
	ldr	r3, [fp, #-392]
	cmp	r3, #0
	beq	.L264
	mvn	r3, #3
.L275:
	ldr	r2, .L278
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L276
	bl	__stack_chk_fail
.L276:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L279:
	.align	2
.L278:
	.word	.LC33
	.word	.LC31
	.word	FlagSleepRec
	.word	apbs
	.word	Dummy
	.word	.LC32
	.word	DeviceErrorCount
	.size	ac_read, .-ac_read
	.section	.rodata
	.align	2
.LC34:
	.ascii	"<4>APPLICOM driver interrupt err board %d, DataToPc"
	.ascii	"Ready = %d\012\000"
	.align	2
.LC35:
	.ascii	"<4>APPLICOM driver interrupt err board %d, DataFrom"
	.ascii	"PcReady = %d\012\000"
	.text
	.align	2
	.global	ac_interrupt
	.syntax unified
	.arm
	.fpu softvfp
	.type	ac_interrupt, %function
ac_interrupt:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-20]
.L295:
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L281
.L290:
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L298
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L300
	add	r3, r3, r2
	mov	r0, r3
	bl	spin_lock
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-38]
	ldrb	r3, [fp, #-38]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L284
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L300
	add	r3, r3, r2
	mov	r0, r3
	bl	spin_unlock
	b	.L283
.L284:
	mov	r3, #1
	str	r3, [fp, #-16]
	mov	r3, #1
	str	r3, [fp, #-24]
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #3
	mov	r1, r3
	mov	r0, #0
	bl	writeb
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-37]
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #2
	bls	.L285
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-36]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldrb	r2, [fp, #-36]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L300+4
	bl	printk
	ldr	r3, .L300+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L300+8
	str	r3, [r2]
.L285:
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-35]
	ldrb	r3, [fp, #-35]	@ zero_extendqisi2
	cmp	r3, #2
	bls	.L286
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-34]
	ldrb	r3, [fp, #-34]	@ zero_extendqisi2
	cmp	r3, #6
	beq	.L286
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-33]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	ldrb	r2, [fp, #-33]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r0, .L300+12
	bl	printk
	ldr	r3, .L300+8
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L300+8
	str	r3, [r2]
.L286:
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-32]
	ldrb	r3, [fp, #-32]	@ zero_extendqisi2
	cmp	r3, #2
	bne	.L287
	ldr	r0, .L300+16
	bl	waitqueue_active
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L287
	ldr	r0, .L300+16
	bl	wake_up_interruptible
.L287:
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-31]
	ldrb	r3, [fp, #-31]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L288
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r3, #8
	ldr	r2, .L300
	add	r3, r3, r2
	mov	r0, r3
	bl	waitqueue_active
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L288
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r3, #8
	ldr	r2, .L300
	add	r3, r3, r2
	mov	r0, r3
	bl	wake_up_interruptible
.L288:
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-30]
	ldr	r2, .L300+20
	ldrb	r3, [fp, #-30]
	strb	r3, [r2]
	ldr	r2, .L300
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-29]
	ldrb	r3, [fp, #-29]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L289
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L300
	add	r3, r3, r2
	mov	r0, r3
	bl	spin_unlock
	ldr	r3, [fp, #-28]
	sub	r3, r3, #1
	str	r3, [fp, #-28]
	b	.L283
.L289:
	ldr	r3, [fp, #-28]
	lsl	r3, r3, #5
	add	r3, r3, #24
	ldr	r2, .L300
	add	r3, r3, r2
	mov	r0, r3
	bl	spin_unlock
	b	.L283
.L298:
	nop
.L283:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L281:
	ldr	r3, [fp, #-28]
	cmp	r3, #7
	bls	.L290
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L291
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L292
.L291:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L292:
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bhi	.L299
	b	.L295
.L299:
	nop
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L301:
	.align	2
.L300:
	.word	apbs
	.word	.LC34
	.word	DeviceErrorCount
	.word	.LC35
	.word	FlagSleepRec
	.word	Dummy
	.size	ac_interrupt, .-ac_interrupt
	.data
	.align	2
	.type	warncount___0, %object
	.size	warncount___0, 4
warncount___0:
	.word	10
	.section	.rodata
	.align	2
.LC36:
	.ascii	"<4>APPLICOM driver IOCTL, bad board number %d\012\000"
	.align	2
.LC37:
	.ascii	"<6>APPLICOM driver release .... V2.8.0 ($Revision: "
	.ascii	"1.30 $)\012\000"
	.align	2
.LC38:
	.ascii	"<6>Number of installed boards . %d\012\000"
	.align	2
.LC39:
	.ascii	"<6>Segment of board ........... %X\012\000"
	.align	2
.LC40:
	.ascii	"<6>Interrupt IRQ number ....... %d\012\000"
	.align	2
.LC41:
	.ascii	"<6>Prom version board %d ....... V%d.%d %s\000"
	.align	2
.LC42:
	.ascii	"<6>DeviceErrorCount ........... %d\012\000"
	.align	2
.LC43:
	.ascii	"<6>ReadErrorCount ............. %d\012\000"
	.align	2
.LC44:
	.ascii	"<6>WriteErrorCount ............ %d\012\000"
	.align	2
.LC45:
	.ascii	"<6>Process in read pending\012\000"
	.align	2
.LC46:
	.ascii	"<6>Process in write pending board %d\012\000"
	.align	2
.LC47:
	.ascii	"<6>APPLICOM driver ioctl, unknown function code %d\012"
	.ascii	"\000"
	.align	2
.LC48:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ac_ioctl
	.syntax unified
	.arm
	.fpu softvfp
	.type	ac_ioctl, %function
ac_ioctl:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #156
	str	r0, [fp, #-144]
	str	r1, [fp, #-148]
	str	r2, [fp, #-152]
	str	r3, [fp, #-156]
	ldr	r3, .L359
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-156]
	str	r3, [fp, #-108]
	mov	r1, #208
	mov	r0, #64
	bl	kmalloc
	str	r0, [fp, #-104]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	cmp	r3, #0
	bne	.L303
	mvn	r3, #11
	b	.L352
.L303:
	mov	r2, #64
	ldr	r1, [fp, #-108]
	ldr	r0, [fp, #-100]
	bl	copy_from_user
	str	r0, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	beq	.L305
	ldr	r0, [fp, #-100]
	bl	kfree
	mvn	r3, #13
	b	.L352
.L305:
	ldr	r3, [fp, #-100]
	ldrb	r3, [r3, #31]	@ zero_extendqisi2
	sub	r3, r3, #1
	strb	r3, [fp, #-136]
	ldr	r3, [fp, #-152]
	cmp	r3, #0
	beq	.L306
	ldr	r3, [fp, #-152]
	cmp	r3, #6
	beq	.L306
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L354
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L306
	b	.L308
.L354:
	nop
.L308:
	ldr	r3, .L359+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L309
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	add	r3, r3, #1
	mov	r1, r3
	ldr	r0, .L359+12
	bl	printk
	ldr	r3, .L359+8
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L359+8
	str	r3, [r2]
.L309:
	ldr	r0, [fp, #-100]
	bl	kfree
	mvn	r3, #21
	b	.L352
.L306:
	ldr	r3, [fp, #-152]
	cmp	r3, #6
	ldrls	pc, [pc, r3, asl #2]
	b	.L310
.L312:
	.word	.L318
	.word	.L317
	.word	.L316
	.word	.L315
	.word	.L314
	.word	.L313
	.word	.L311
.L318:
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L319
.L320:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-124]
	ldr	r2, [fp, #-100]
	add	r4, r2, r3
	ldr	r0, [fp, #-48]
	bl	readb
	mov	r3, r0
	strb	r3, [r4]
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L319:
	ldr	r3, [fp, #-124]
	cmp	r3, #63
	bls	.L320
	mov	r2, #64
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-108]
	bl	copy_to_user
	str	r0, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	beq	.L355
	mvn	r3, #13
	str	r3, [fp, #-112]
	b	.L355
.L317:
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #18
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L323
.L324:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-56]
	bl	readb
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	add	r3, r3, #18
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L323:
	ldr	r3, [fp, #-124]
	cmp	r3, #3
	ble	.L324
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L325
.L326:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-60]
	bl	readb
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	add	r3, r3, #22
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L325:
	ldr	r3, [fp, #-124]
	cmp	r3, #1
	ble	.L326
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L327
.L328:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-64]
	bl	readb
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	add	r3, r3, #24
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L327:
	ldr	r3, [fp, #-124]
	cmp	r3, #3
	ble	.L328
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-120]
	bl	readb
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-100]
	strb	r2, [r3, #30]
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #960
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L329
.L330:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-68]
	bl	readb
	mov	r3, r0
	mov	r1, r3
	ldr	r2, [fp, #-100]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	add	r3, r3, #32
	mov	r2, r1
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L329:
	ldr	r3, [fp, #-124]
	cmp	r3, #19
	ble	.L330
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #984
	add	r3, r3, #2
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-128]
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #984
	add	r3, r3, #3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-127]
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #988
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-126]
	ldrb	r3, [fp, #-128]	@ zero_extendqisi2
	lsl	r2, r3, #16
	ldrb	r3, [fp, #-127]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r1, r2, r3
	ldrb	r2, [fp, #-126]	@ zero_extendqisi2
	ldr	r3, [fp, #-100]
	add	r3, r3, #52
	add	r2, r1, r2
	str	r2, [r3]
	mov	r2, #64
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-108]
	bl	copy_to_user
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	beq	.L356
	mvn	r3, #13
	str	r3, [fp, #-112]
	b	.L356
.L316:
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #18
	str	r3, [fp, #-120]
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L332
.L333:
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r1, [fp, #-76]
	mov	r0, #255
	bl	writeb
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L332:
	ldr	r3, [fp, #-124]
	cmp	r3, #9
	ble	.L333
	ldr	r3, [fp, #-100]
	ldrb	r2, [r3, #5]	@ zero_extendqisi2
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r1, .L359+4
	lsl	r3, r3, #5
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r1, r3
	mov	r0, r2
	bl	writeb
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #2
	mov	r1, r3
	mov	r0, #1
	bl	writeb
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L334
.L336:
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L335
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-129]
	ldrb	r3, [fp, #-129]
	strb	r3, [fp, #-137]
.L335:
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L334:
	ldr	r3, [fp, #-124]
	cmp	r3, #7
	ble	.L336
	b	.L322
.L315:
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #8
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-100]
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	ldr	r1, [fp, #-120]
	mov	r0, r3
	bl	writeb
	b	.L322
.L314:
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-84]
	bl	readb
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-100]
	strb	r2, [r3, #1]
	ldr	r0, [fp, #-120]
	bl	readb
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-100]
	strb	r2, [r3, #2]
	mov	r2, #64
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-108]
	bl	copy_to_user
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-80]
	cmp	r3, #0
	beq	.L357
	mvn	r3, #13
	str	r3, [fp, #-112]
	b	.L357
.L313:
	ldr	r3, [fp, #-100]
	ldrb	r2, [r3, #31]	@ zero_extendqisi2
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r1, .L359+4
	lsl	r3, r3, #5
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #2
	mov	r1, r3
	mov	r0, r2
	bl	writeb
	ldr	r3, [fp, #-100]
	ldrb	r2, [r3, #31]	@ zero_extendqisi2
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r1, .L359+4
	lsl	r3, r3, #5
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #9
	mov	r1, r3
	mov	r0, r2
	bl	writeb
	ldr	r3, [fp, #-100]
	ldrb	r2, [r3, #31]	@ zero_extendqisi2
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r1, .L359+4
	lsl	r3, r3, #5
	add	r3, r1, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	writeb
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #5
	mov	r1, r3
	mov	r0, #4
	bl	writeb
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #1020
	add	r3, r3, #2
	mov	r1, r3
	mov	r0, #1
	bl	writeb
	b	.L322
.L311:
	ldr	r0, .L359+16
	bl	printk
	ldr	r3, .L359+20
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L359+24
	bl	printk
	ldr	r3, .L359+28
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L359+32
	bl	printk
	ldr	r3, .L359+36
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L359+40
	bl	printk
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L338
.L344:
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L358
	mov	r3, #0
	str	r3, [fp, #-116]
	b	.L341
.L342:
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-116]
	add	r3, r3, #960
	add	r3, r2, r3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-130]
	sub	r2, fp, #44
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	ldrb	r2, [fp, #-130]
	strb	r2, [r3]
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	str	r3, [fp, #-116]
.L341:
	ldr	r3, [fp, #-116]
	cmp	r3, #25
	ble	.L342
	sub	r2, fp, #44
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	mov	r2, #0
	strb	r2, [r3]
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-135]
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-134]
	ldr	r3, [fp, #-124]
	add	r1, r3, #1
	ldrb	r3, [fp, #-134]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r0, r3
	ldrb	r3, [fp, #-135]	@ zero_extendqisi2
	and	r2, r3, #15
	sub	r3, fp, #44
	str	r3, [sp]
	mov	r3, r2
	mov	r2, r0
	ldr	r0, .L359+44
	bl	printk
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #984
	add	r3, r3, #2
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-133]
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #984
	add	r3, r3, #3
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-132]
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #988
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-131]
	ldrb	r3, [fp, #-133]	@ zero_extendqisi2
	lsl	r2, r3, #16
	ldrb	r3, [fp, #-132]	@ zero_extendqisi2
	lsl	r3, r3, #8
	add	r2, r2, r3
	ldrb	r3, [fp, #-131]	@ zero_extendqisi2
	add	r3, r2, r3
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	beq	.L343
	ldr	r1, [fp, #-116]
	ldr	r0, .L359+48
	bl	printk
	b	.L340
.L343:
	ldr	r0, .L359+52
	bl	printk
	b	.L340
.L358:
	nop
.L340:
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L338:
	ldr	r3, [fp, #-124]
	cmp	r3, #7
	ble	.L344
	ldr	r3, .L359+56
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L345
	ldr	r3, .L359+56
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L359+60
	bl	printk
.L345:
	ldr	r3, .L359+64
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L346
	ldr	r3, .L359+64
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L359+68
	bl	printk
.L346:
	ldr	r3, .L359+72
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L347
	ldr	r3, .L359+72
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L359+76
	bl	printk
.L347:
	ldr	r0, .L359+80
	bl	waitqueue_active
	str	r0, [fp, #-92]
	ldr	r3, [fp, #-92]
	cmp	r3, #0
	beq	.L348
	ldr	r0, .L359+84
	bl	printk
.L348:
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L349
.L351:
	ldr	r2, .L359+4
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	cmp	r3, #0
	beq	.L350
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #5
	add	r3, r3, #8
	ldr	r2, .L359+4
	add	r3, r3, r2
	mov	r0, r3
	bl	waitqueue_active
	str	r0, [fp, #-88]
	ldr	r3, [fp, #-88]
	cmp	r3, #0
	beq	.L350
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	mov	r1, r3
	ldr	r0, .L359+88
	bl	printk
.L350:
	ldr	r3, [fp, #-124]
	add	r3, r3, #1
	str	r3, [fp, #-124]
.L349:
	ldr	r3, [fp, #-124]
	cmp	r3, #7
	ble	.L351
	b	.L322
.L310:
	ldr	r1, [fp, #-152]
	ldr	r0, .L359+92
	bl	printk
	mvn	r3, #21
	str	r3, [fp, #-112]
	b	.L322
.L355:
	nop
	b	.L322
.L356:
	nop
	b	.L322
.L357:
	nop
.L322:
	ldrb	r3, [fp, #-136]	@ zero_extendqisi2
	ldr	r2, .L359+4
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r3, [r3, #4]
	add	r3, r3, #30
	mov	r0, r3
	bl	readb
	mov	r3, r0
	strb	r3, [fp, #-125]
	ldr	r2, .L359+96
	ldrb	r3, [fp, #-125]
	strb	r3, [r2]
	ldr	r0, [fp, #-100]
	bl	kfree
	mov	r3, #0
.L352:
	ldr	r2, .L359
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L353
	bl	__stack_chk_fail
.L353:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L360:
	.align	2
.L359:
	.word	.LC48
	.word	apbs
	.word	warncount___0
	.word	.LC36
	.word	.LC37
	.word	numboards
	.word	.LC38
	.word	mem
	.word	.LC39
	.word	irq
	.word	.LC40
	.word	.LC41
	.word	.LC25
	.word	.LC26
	.word	DeviceErrorCount
	.word	.LC42
	.word	ReadErrorCount
	.word	.LC43
	.word	WriteErrorCount
	.word	.LC44
	.word	FlagSleepRec
	.word	.LC45
	.word	.LC46
	.word	.LC47
	.word	Dummy
	.size	ac_ioctl, .-ac_ioctl
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L363
	ldr	r2, .L363+4
	str	r2, [r3]
	ldr	r3, .L363+8
	ldr	r2, .L363+12
	str	r2, [r3]
	bl	call_ddv
	mov	r3, #0
	mov	r0, r3
	pop	{fp, pc}
.L364:
	.align	2
.L363:
	.word	_ddv_module_init
	.word	applicom_init
	.word	_ddv_module_exit
	.word	applicom_exit
	.size	main, .-main
	.align	2
	.global	request_irq
	.syntax unified
	.arm
	.fpu softvfp
	.type	request_irq, %function
request_irq:
	@ 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	nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L366
	ldr	r1, .L368
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r1, r3, lsl #3]
	ldr	r2, .L368
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldr	r2, [fp, #4]
	str	r2, [r3, #4]
	mov	r3, #0
	b	.L367
.L366:
	mvn	r3, #0
.L367:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L369:
	.align	2
.L368:
	.word	registered_irq
	.size	request_irq, .-request_irq
	.align	2
	.global	free_irq
	.syntax unified
	.arm
	.fpu softvfp
	.type	free_irq, %function
free_irq:
	@ 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]
	ldr	r2, .L372
	ldr	r3, [fp, #-8]
	mov	r1, #0
	str	r1, [r2, r3, lsl #3]
	ldr	r2, .L372
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #4]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L373:
	.align	2
.L372:
	.word	registered_irq
	.size	free_irq, .-free_irq
	.comm	proc_root_driver,4,4
	.align	2
	.global	misc_register
	.syntax unified
	.arm
	.fpu softvfp
	.type	misc_register, %function
misc_register:
	@ 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, #-24]
	ldr	r3, .L377
	ldr	r3, [r3]
	cmp	r3, #9
	bgt	.L375
	ldr	r3, .L377
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, .L377
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L377
	str	r3, [r2]
	ldr	r2, .L377+4
	ldr	r3, [fp, #-16]
	mov	r1, #0
	str	r1, [r2, r3, lsl #4]
	ldr	r3, [fp, #-24]
	ldr	r2, [r3, #8]
	ldr	r1, .L377+4
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	orr	r3, r3, #10485760
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #4
	ldr	r2, .L377+4
	add	r3, r3, r2
	mov	r2, #0
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	cdev_add
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L376
.L375:
	mvn	r3, #0
.L376:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L378:
	.align	2
.L377:
	.word	fixed_cdev_used
	.word	fixed_cdev
	.size	misc_register, .-misc_register
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	assert_context_process, %function
assert_context_process:
	@ 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
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	assert_context_process, .-assert_context_process
	.align	2
	.global	pci_enable_device
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_enable_device, %function
pci_enable_device:
	@ 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, #-24]
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L382
.L383:
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	add	r3, r2, r3
	mov	r2, #256
	str	r2, [r3, #48]
	bl	nondet_uint
	str	r0, [fp, #-8]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [fp, #-8]
	str	r2, [r3, #8]
	bl	nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-14]	@ movhi
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-12]
	add	r3, r3, #2
	lsl	r3, r3, #4
	add	r3, r2, r3
	ldr	r2, [r3, #8]
	ldrh	r3, [fp, #-14]
	add	r2, r2, r3
	ldr	r1, [fp, #-24]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r2, [r3, #44]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L382:
	ldr	r3, [fp, #-12]
	cmp	r3, #11
	ble	.L383
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_enable_device, .-pci_enable_device
	.align	2
	.global	pci_get_class
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_get_class, %function
pci_get_class:
	@ 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]
	cmp	r3, #0
	bne	.L386
	mov	r0, #232
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-20]
.L386:
	bl	nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L387
	bl	nondet_ushort
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	strh	r2, [r3, #8]	@ movhi
	bl	nondet_ushort
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	strh	r2, [r3, #10]	@ movhi
	bl	nondet_uint
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3, #32]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3, #32]
	cmp	r3, #15
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	__CPROVER_assume
	ldr	r3, [fp, #-20]
	b	.L388
.L387:
	mov	r3, #0
.L388:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_get_class, .-pci_get_class
	.comm	ddv_ioport_request_start,4,4
	.comm	ddv_ioport_request_len,4,4
	.align	2
	.global	request_region
	.syntax unified
	.arm
	.fpu softvfp
	.type	request_region, %function
request_region:
	@ 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]
	mov	r0, #16
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-16]
	ldr	r2, .L391
	str	r3, [r2]
	ldr	r3, [fp, #-20]
	ldr	r2, .L391+4
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L392:
	.align	2
.L391:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.size	request_region, .-request_region
	.align	2
	.global	release_region
	.syntax unified
	.arm
	.fpu softvfp
	.type	release_region, %function
release_region:
	@ 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, #-16]
	str	r1, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, .L395
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L395+4
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L396:
	.align	2
.L395:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.size	release_region, .-release_region
	.align	2
	.global	schedule
	.syntax unified
	.arm
	.fpu softvfp
	.type	schedule, %function
schedule:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	assert_context_process
	nop
	pop	{fp, pc}
	.size	schedule, .-schedule
	.align	2
	.global	schedule_timeout
	.syntax unified
	.arm
	.fpu softvfp
	.type	schedule_timeout, %function
schedule_timeout:
	@ 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	assert_context_process
	bl	nondet_long
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	schedule_timeout, .-schedule_timeout
	.align	2
	.global	kmalloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	kmalloc, %function
kmalloc:
	@ 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]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L402
	bl	assert_context_process
.L402:
	ldr	r0, [fp, #-16]
	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	kmalloc, .-kmalloc
	.align	2
	.global	kzalloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	kzalloc, %function
kzalloc:
	@ 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]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L405
	bl	assert_context_process
.L405:
	ldr	r0, [fp, #-16]
	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	kzalloc, .-kzalloc
	.align	2
	.global	spin_lock_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_lock_init, %function
spin_lock_init:
	@ 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]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	spin_lock_init, .-spin_lock_init
	.align	2
	.global	spin_lock
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_lock, %function
spin_lock:
	@ 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]
.L412:
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L410
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #4]
	bl	__CPROVER_atomic_end
	b	.L413
.L410:
	bl	__CPROVER_atomic_end
	b	.L412
.L413:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	spin_lock, .-spin_lock
	.align	2
	.global	spin_lock_irqsave
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_lock_irqsave, %function
spin_lock_irqsave:
	@ 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]
.L417:
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #4]
	cmp	r3, #0
	bne	.L415
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #4]
	bl	__CPROVER_atomic_end
	b	.L418
.L415:
	bl	__CPROVER_atomic_end
	b	.L417
.L418:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	spin_lock_irqsave, .-spin_lock_irqsave
	.align	2
	.global	spin_unlock
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_unlock, %function
spin_unlock:
	@ 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]
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	bl	__CPROVER_atomic_end
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	spin_unlock, .-spin_unlock
	.align	2
	.global	spin_unlock_irqrestore
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_unlock_irqrestore, %function
spin_unlock_irqrestore:
	@ 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]
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3, #4]
	bl	__CPROVER_atomic_end
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	spin_unlock_irqrestore, .-spin_unlock_irqrestore
	.align	2
	.global	call_tasklet_functions
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_tasklet_functions, %function
call_tasklet_functions:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	__CPROVER_assume
	ldr	r2, .L427
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #3]
	cmp	r3, #0
	beq	.L426
	ldr	r2, .L427
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L426
	ldr	r2, .L427
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	add	r3, r3, #4
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r2, .L427
	ldr	r3, [fp, #-8]
	ldr	r3, [r2, r3, lsl #3]
	ldr	r3, [r3, #4]
	ldr	r1, .L427
	ldr	r2, [fp, #-8]
	ldr	r2, [r1, r2, lsl #3]
	ldr	r2, [r2, #8]
	mov	r0, r2
	blx	r3
	ldr	r2, .L427
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	add	r3, r2, r3
	add	r3, r3, #4
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r2, .L427
	ldr	r3, [fp, #-8]
	mov	r1, #0
	str	r1, [r2, r3, lsl #3]
	nop
.L426:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L428:
	.align	2
.L427:
	.word	tasklet_registered
	.size	call_tasklet_functions, .-call_tasklet_functions
	.comm	global_tty_driver,200,4
	.align	2
	.global	alloc_tty_driver
	.syntax unified
	.arm
	.fpu softvfp
	.type	alloc_tty_driver, %function
alloc_tty_driver:
	@ 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]
	ldr	r3, .L433
	ldrh	r3, [r3, #196]
	cmp	r3, #0
	bne	.L430
	ldr	r3, .L433
	ldr	r2, .L433+4
	str	r2, [r3]
	ldr	r2, .L433
	ldr	r3, [fp, #-8]
	str	r3, [r2, #48]
	mov	r3, #0
	b	.L432
.L430:
	mov	r3, #0
.L432:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L434:
	.align	2
.L433:
	.word	global_tty_driver
	.word	21506
	.size	alloc_tty_driver, .-alloc_tty_driver
	.align	2
	.global	tty_set_operations
	.syntax unified
	.arm
	.fpu softvfp
	.type	tty_set_operations, %function
tty_set_operations:
	@ 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]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #104]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #108]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #112]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #116]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #120]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #124]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #128]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #132]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #32]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #136]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #36]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #140]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #40]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #144]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #44]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #148]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #48]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #152]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #52]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #156]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #56]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #160]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #60]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #164]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #64]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #168]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #68]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #172]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #72]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #176]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #76]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #180]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #80]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #184]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #84]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #188]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #88]
	ldr	r3, [fp, #-8]
	str	r2, [r3, #192]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tty_set_operations, .-tty_set_operations
	.align	2
	.global	copy_to_user
	.syntax unified
	.arm
	.fpu softvfp
	.type	copy_to_user, %function
copy_to_user:
	@ 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	assert_context_process
	bl	nondet_ulong
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	copy_to_user, .-copy_to_user
	.align	2
	.global	copy_from_user
	.syntax unified
	.arm
	.fpu softvfp
	.type	copy_from_user, %function
copy_from_user:
	@ 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	assert_context_process
	bl	nondet_ulong
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	copy_from_user, .-copy_from_user
	.align	2
	.global	vmalloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	vmalloc, %function
vmalloc:
	@ 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]
	ldr	r0, [fp, #-16]
	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	vmalloc, .-vmalloc
	.align	2
	.global	init_waitqueue_head
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_waitqueue_head, %function
init_waitqueue_head:
	@ 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]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3, #8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	init_waitqueue_head, .-init_waitqueue_head
	.align	2
	.global	wake_up_interruptible
	.syntax unified
	.arm
	.fpu softvfp
	.type	wake_up_interruptible, %function
wake_up_interruptible:
	@ 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	wake_up_interruptible, .-wake_up_interruptible
	.align	2
	.global	call_shared_workqueue_functions
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_shared_workqueue_functions, %function
call_shared_workqueue_functions:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	bl	nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-8]	@ movhi
	ldrh	r3, [fp, #-8]	@ movhi
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]
	cmp	r3, #9
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	bl	__CPROVER_assume
	ldrh	r3, [fp, #-6]
	ldr	r2, .L451
	ldr	r3, [r2, r3, lsl #2]
	cmp	r3, #0
	beq	.L450
	ldrh	r3, [fp, #-6]
	ldr	r2, .L451
	ldr	r3, [r2, r3, lsl #2]
	ldr	r3, [r3, #4]
	ldrh	r2, [fp, #-6]
	ldr	r1, .L451
	ldr	r2, [r1, r2, lsl #2]
	ldr	r2, [r2, #8]
	mov	r0, r2
	blx	r3
	ldrh	r3, [fp, #-6]
	ldr	r2, .L451
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	nop
.L450:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L452:
	.align	2
.L451:
	.word	shared_workqueue
	.size	call_shared_workqueue_functions, .-call_shared_workqueue_functions
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
