	.file	"126704282.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
	.globl	jiffies
	.align 8
	.type	jiffies, @object
	.size	jiffies, 8
jiffies:
	.zero	8
	.text
	.globl	pthread_mutex_init
	.type	pthread_mutex_init, @function
pthread_mutex_init:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	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
.LFE0:
	.size	pthread_mutex_init, .-pthread_mutex_init
	.globl	pthread_mutex_destroy
	.type	pthread_mutex_destroy, @function
pthread_mutex_destroy:
.LFB1:
	.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
.LFE1:
	.size	pthread_mutex_destroy, .-pthread_mutex_destroy
	.globl	pthread_mutex_lock
	.type	pthread_mutex_lock, @function
pthread_mutex_lock:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -5[rbp], al
	movzx	eax, BYTE PTR -5[rbp]
	xor	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	rax, QWORD PTR -24[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
.LFE2:
	.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:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -5[rbp], al
	movzx	eax, BYTE PTR -5[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	lea	rsi, .LC0[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	BYTE PTR [rax], 0
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	pthread_mutex_unlock, .-pthread_mutex_unlock
	.globl	current_stack_pointer
	.bss
	.align 8
	.type	current_stack_pointer, @object
	.size	current_stack_pointer, 8
current_stack_pointer:
	.zero	8
	.globl	_ddv_module_param_timeout
	.data
	.align 32
	.type	_ddv_module_param_timeout, @object
	.size	_ddv_module_param_timeout, 66
_ddv_module_param_timeout:
	.string	"Watchdog timeout in seconds (60..15300), default=DEFAULT_TIMEOUT)"
	.globl	_ddv_module_param_testmode
	.align 32
	.type	_ddv_module_param_testmode, @object
	.size	_ddv_module_param_testmode, 45
_ddv_module_param_testmode:
	.string	"Watchdog testmode (1 = no reboot), default=0"
	.globl	_ddv_module_param_nowayout
	.align 32
	.type	_ddv_module_param_nowayout, @object
	.size	_ddv_module_param_nowayout, 75
_ddv_module_param_nowayout:
	.string	"Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)"
	.globl	_ddv_module_author
	.align 32
	.type	_ddv_module_author, @object
	.size	_ddv_module_author, 36
_ddv_module_author:
	.string	"Woody Suwalski <woodys@xandros.com>"
	.globl	_ddv_module_description
	.align 16
	.type	_ddv_module_description, @object
	.size	_ddv_module_description, 25
_ddv_module_description:
	.string	"W83977AF Watchdog driver"
	.globl	_ddv_module_license
	.type	_ddv_module_license, @object
	.size	_ddv_module_license, 4
_ddv_module_license:
	.string	"GPL"
	.text
	.globl	main
	.type	main, @function
main:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	call_ddv
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	main, .-main
	.globl	fixed_cdev
	.bss
	.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, 960
cdev_registered:
	.zero	960
	.globl	registered_pci_driver
	.align 32
	.type	registered_pci_driver, @object
	.size	registered_pci_driver, 456
registered_pci_driver:
	.zero	456
	.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:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	lea	rdi, kernel_lock[rip]
	call	spin_lock_init
	mov	DWORD PTR -76[rbp], 0
.L12:
	cmp	DWORD PTR -76[rbp], 9
	jg	.L21
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, shared_workqueue[rip]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -76[rbp], 1
	jmp	.L12
.L21:
	nop
.L14:
	mov	DWORD PTR -76[rbp], 0
.L15:
	cmp	DWORD PTR -76[rbp], 9
	jg	.L22
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 4
	mov	QWORD PTR -72[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	QWORD PTR -56[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -76[rbp]
	cdqe
	sal	rax, 4
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	mov	QWORD PTR -40[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR [rax], 0
	add	DWORD PTR -76[rbp], 1
	jmp	.L15
.L22:
	nop
.L17:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	init_kernel, .-init_kernel
	.type	ddv_2, @function
ddv_2:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
.L24:
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -2[rbp], ax
	cmp	WORD PTR -2[rbp], 1
	je	.L46
	cmp	WORD PTR -2[rbp], 2
	je	.L47
	cmp	WORD PTR -2[rbp], 3
	je	.L48
	cmp	WORD PTR -2[rbp], 4
	je	.L49
	cmp	WORD PTR -2[rbp], 5
	jne	.L50
	jmp	.L44
.L46:
	nop
.L26:
	jmp	.L36
.L47:
	nop
.L28:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_timer_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L36
.L48:
	nop
.L30:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_interrupt_handler
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L36
.L49:
	nop
.L32:
	mov	DWORD PTR current_execution_context[rip], 1
	call	call_shared_workqueue_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L36
.L44:
.L34:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_tasklet_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L36
.L50:
	nop
.L35:
	nop
.L36:
	cmp	WORD PTR -2[rbp], 0
	je	.L51
	jmp	.L24
.L51:
	nop
.L38:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	ddv_2, .-ddv_2
	.globl	ddv
	.type	ddv, @function
ddv:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -16[rbp]
	mov	rsi, QWORD PTR -24[rbp]
	lea	rax, -40[rbp]
	mov	rcx, rdx
	lea	rdx, ddv_2[rip]
	mov	rdi, rax
	call	pthread_create@PLT
.L53:
	mov	DWORD PTR current_execution_context[rip], 1
	call	call_cdev_functions
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	je	.L59
	jmp	.L53
.L59:
	nop
.L55:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L57
	call	__stack_chk_fail@PLT
.L57:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	ddv, .-ddv
	.globl	call_ddv
	.type	call_ddv, @function
call_ddv:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR current_execution_context[rip], 1
	call	init_kernel
	call	wd977_init@PLT
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L61
	mov	eax, -1
	jmp	.L62
.L61:
	call	ddv
	mov	DWORD PTR current_execution_context[rip], 1
	call	wd977_exit@PLT
	mov	eax, 0
.L62:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	call_ddv, .-call_ddv
	.globl	call_cdev_functions
	.type	call_cdev_functions, @function
call_cdev_functions:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1328
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movzx	eax, WORD PTR number_cdev_registered[rip]
	cwde
	mov	DWORD PTR -1304[rbp], eax
	cmp	DWORD PTR -1304[rbp], 0
	je	.L160
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -1312[rbp], ax
	movzx	eax, WORD PTR -1312[rbp]
	mov	DWORD PTR -1300[rbp], eax
	cmp	DWORD PTR -1300[rbp], 0
	js	.L66
	movzx	eax, WORD PTR number_cdev_registered[rip]
	cwde
	mov	DWORD PTR -1296[rbp], eax
	mov	eax, DWORD PTR -1300[rbp]
	cmp	eax, DWORD PTR -1296[rbp]
	jge	.L67
	mov	DWORD PTR -1308[rbp], 1
	jmp	.L68
.L67:
	mov	DWORD PTR -1308[rbp], 0
	jmp	.L68
.L66:
	mov	DWORD PTR -1308[rbp], 0
.L68:
	mov	eax, DWORD PTR -1308[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -1310[rbp], ax
	cmp	WORD PTR -1310[rbp], 0
	je	.L161
	cmp	WORD PTR -1310[rbp], 1
	je	.L162
	cmp	WORD PTR -1310[rbp], 2
	je	.L163
	cmp	WORD PTR -1310[rbp], 3
	je	.L164
	cmp	WORD PTR -1310[rbp], 4
	je	.L165
	cmp	WORD PTR -1310[rbp], 5
	je	.L166
	cmp	WORD PTR -1310[rbp], 6
	je	.L167
	cmp	WORD PTR -1310[rbp], 7
	je	.L168
	cmp	WORD PTR -1310[rbp], 8
	je	.L169
	cmp	WORD PTR -1310[rbp], 9
	je	.L170
	cmp	WORD PTR -1310[rbp], 10
	je	.L171
	cmp	WORD PTR -1310[rbp], 11
	je	.L172
	cmp	WORD PTR -1310[rbp], 12
	je	.L173
	cmp	WORD PTR -1310[rbp], 13
	je	.L174
	cmp	WORD PTR -1310[rbp], 14
	je	.L175
	cmp	WORD PTR -1310[rbp], 15
	je	.L176
	cmp	WORD PTR -1310[rbp], 16
	je	.L177
	cmp	WORD PTR -1310[rbp], 17
	je	.L178
	cmp	WORD PTR -1310[rbp], 18
	je	.L179
	cmp	WORD PTR -1310[rbp], 19
	je	.L180
	cmp	WORD PTR -1310[rbp], 20
	je	.L181
	cmp	WORD PTR -1310[rbp], 21
	je	.L182
	cmp	WORD PTR -1310[rbp], 22
	je	.L183
	cmp	WORD PTR -1310[rbp], 23
	je	.L184
	cmp	WORD PTR -1310[rbp], 24
	je	.L185
	cmp	WORD PTR -1310[rbp], 25
	je	.L186
	cmp	WORD PTR -1310[rbp], 26
	jne	.L187
	jmp	.L159
.L161:
	nop
.L70:
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -200[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L188
	lea	rax, -1272[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	eax, 0
	call	__VERIFIER_nondet_loff_t@PLT
	mov	rdx, QWORD PTR -136[rbp]
	mov	QWORD PTR [rdx], rax
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -1276[rbp], eax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -128[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	mov	QWORD PTR -48[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, -1272[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	edx, DWORD PTR -1276[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	r8, QWORD PTR -64[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	r8
	jmp	.L188
.L162:
	nop
.L72:
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -376[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -376[rbp]
	add	rax, rdx
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	add	rax, 8
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 16
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L189
	lea	rax, -1313[rbp]
	mov	QWORD PTR -312[rbp], rax
	mov	eax, 0
	call	__VERIFIER_nondet_char@PLT
	mov	rdx, QWORD PTR -312[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, 0
	call	__VERIFIER_nondet_size_t@PLT
	mov	DWORD PTR -1280[rbp], eax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -304[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 8
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 16
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -240[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	mov	QWORD PTR -224[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -208[rbp], rax
	lea	rcx, -1272[rbp]
	mov	edx, DWORD PTR -1280[rbp]
	lea	rsi, -1313[rbp]
	mov	rax, QWORD PTR -208[rbp]
	mov	r8, QWORD PTR -240[rbp]
	mov	rdi, rax
	call	r8
	jmp	.L189
.L163:
	nop
.L74:
	jmp	.L125
.L164:
	nop
.L76:
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -560[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -560[rbp]
	add	rax, rdx
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -536[rbp]
	add	rax, 8
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -528[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	add	rax, 24
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L190
	lea	rax, -1313[rbp]
	mov	QWORD PTR -496[rbp], rax
	mov	eax, 0
	call	__VERIFIER_nondet_char@PLT
	mov	rdx, QWORD PTR -496[rbp]
	mov	BYTE PTR [rdx], al
	mov	eax, 0
	call	__VERIFIER_nondet_size_t@PLT
	mov	DWORD PTR -1280[rbp], eax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -488[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -488[rbp]
	add	rax, rdx
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	add	rax, 8
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	add	rax, 24
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -424[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, 8
	mov	QWORD PTR -408[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -408[rbp]
	add	rax, rdx
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	mov	QWORD PTR -392[rbp], rax
	lea	rax, -1313[rbp]
	mov	QWORD PTR -384[rbp], rax
	lea	rcx, -1272[rbp]
	mov	edx, DWORD PTR -1280[rbp]
	mov	rsi, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	r8, QWORD PTR -424[rbp]
	mov	rdi, rax
	call	r8
	jmp	.L190
.L165:
	nop
.L78:
	jmp	.L125
.L166:
	nop
.L80:
	jmp	.L125
.L167:
	nop
.L82:
	jmp	.L125
.L168:
	nop
.L84:
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -768[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -768[rbp]
	add	rax, rdx
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -760[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -752[rbp], rax
	mov	rax, QWORD PTR -752[rbp]
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	add	rax, 8
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -720[rbp]
	add	rax, 48
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -712[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L191
	mov	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR -1284[rbp], eax
	mov	eax, 0
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -704[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -696[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -696[rbp]
	add	rax, rdx
	mov	QWORD PTR -688[rbp], rax
	mov	rax, QWORD PTR -688[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -680[rbp], rax
	mov	rax, QWORD PTR -680[rbp]
	mov	QWORD PTR -672[rbp], rax
	mov	rax, QWORD PTR -672[rbp]
	add	rax, 8
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -664[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -656[rbp]
	mov	QWORD PTR -648[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 48
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -640[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -632[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	add	rax, 64
	mov	QWORD PTR -616[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -616[rbp]
	add	rax, rdx
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -608[rbp]
	mov	QWORD PTR -600[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	add	rax, 8
	mov	QWORD PTR -584[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -584[rbp]
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	QWORD PTR -568[rbp], rax
	mov	rcx, QWORD PTR -704[rbp]
	mov	edx, DWORD PTR -1284[rbp]
	mov	rsi, QWORD PTR -568[rbp]
	mov	rax, QWORD PTR -600[rbp]
	mov	r8, QWORD PTR -632[rbp]
	mov	rdi, rax
	call	r8
	jmp	.L191
.L169:
	nop
.L86:
	jmp	.L125
.L170:
	nop
.L88:
	jmp	.L125
.L171:
	nop
.L90:
	jmp	.L125
.L172:
	nop
.L92:
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -1016[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -1016[rbp]
	add	rax, rdx
	mov	QWORD PTR -1008[rbp], rax
	mov	rax, QWORD PTR -1008[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1000[rbp], rax
	mov	rax, QWORD PTR -1000[rbp]
	mov	QWORD PTR -992[rbp], rax
	mov	rax, QWORD PTR -992[rbp]
	add	rax, 8
	mov	QWORD PTR -984[rbp], rax
	mov	rax, QWORD PTR -984[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -976[rbp], rax
	mov	rax, QWORD PTR -976[rbp]
	mov	QWORD PTR -968[rbp], rax
	mov	rax, QWORD PTR -968[rbp]
	add	rax, 80
	mov	QWORD PTR -960[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L192
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -952[rbp], rax
	mov	rax, QWORD PTR -952[rbp]
	add	rax, 88
	mov	QWORD PTR -944[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -944[rbp]
	add	rax, rdx
	mov	QWORD PTR -936[rbp], rax
	mov	rax, QWORD PTR -936[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1288[rbp], eax
	cmp	DWORD PTR -1288[rbp], 0
	jne	.L192
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -928[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -928[rbp]
	add	rax, rdx
	mov	QWORD PTR -920[rbp], rax
	mov	rax, QWORD PTR -920[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -912[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	add	rax, 8
	mov	QWORD PTR -896[rbp], rax
	mov	rax, QWORD PTR -896[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -888[rbp]
	mov	QWORD PTR -880[rbp], rax
	mov	rax, QWORD PTR -880[rbp]
	add	rax, 80
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -864[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -856[rbp]
	add	rax, 64
	mov	QWORD PTR -848[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -848[rbp]
	add	rax, rdx
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -840[rbp]
	mov	QWORD PTR -832[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -824[rbp]
	add	rax, 8
	mov	QWORD PTR -816[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -816[rbp]
	add	rax, rdx
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rdx, QWORD PTR -800[rbp]
	mov	rax, QWORD PTR -832[rbp]
	mov	rcx, QWORD PTR -864[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -1292[rbp], eax
	cmp	DWORD PTR -1292[rbp], 0
	jne	.L192
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 88
	mov	QWORD PTR -784[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -784[rbp]
	add	rax, rdx
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -776[rbp]
	mov	DWORD PTR [rax], 1
	jmp	.L192
.L173:
	nop
.L94:
	jmp	.L125
.L174:
	nop
.L96:
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -1264[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -1264[rbp]
	add	rax, rdx
	mov	QWORD PTR -1256[rbp], rax
	mov	rax, QWORD PTR -1256[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1248[rbp], rax
	mov	rax, QWORD PTR -1248[rbp]
	mov	QWORD PTR -1240[rbp], rax
	mov	rax, QWORD PTR -1240[rbp]
	add	rax, 8
	mov	QWORD PTR -1232[rbp], rax
	mov	rax, QWORD PTR -1232[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1224[rbp], rax
	mov	rax, QWORD PTR -1224[rbp]
	mov	QWORD PTR -1216[rbp], rax
	mov	rax, QWORD PTR -1216[rbp]
	add	rax, 96
	mov	QWORD PTR -1208[rbp], rax
	mov	rax, QWORD PTR -1208[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L193
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -1200[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 88
	mov	QWORD PTR -1192[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -1192[rbp]
	add	rax, rdx
	mov	QWORD PTR -1184[rbp], rax
	mov	rax, QWORD PTR -1184[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L193
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -1176[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -1176[rbp]
	add	rax, rdx
	mov	QWORD PTR -1168[rbp], rax
	mov	rax, QWORD PTR -1168[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1160[rbp], rax
	mov	rax, QWORD PTR -1160[rbp]
	mov	QWORD PTR -1152[rbp], rax
	mov	rax, QWORD PTR -1152[rbp]
	add	rax, 8
	mov	QWORD PTR -1144[rbp], rax
	mov	rax, QWORD PTR -1144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1136[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	QWORD PTR -1128[rbp], rax
	mov	rax, QWORD PTR -1128[rbp]
	add	rax, 96
	mov	QWORD PTR -1120[rbp], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1112[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -1104[rbp], rax
	mov	rax, QWORD PTR -1104[rbp]
	add	rax, 64
	mov	QWORD PTR -1096[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -1096[rbp]
	add	rax, rdx
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	mov	QWORD PTR -1080[rbp], rax
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 8
	mov	QWORD PTR -1064[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -1064[rbp]
	add	rax, rdx
	mov	QWORD PTR -1056[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -1048[rbp], rax
	mov	rdx, QWORD PTR -1048[rbp]
	mov	rax, QWORD PTR -1080[rbp]
	mov	rcx, QWORD PTR -1112[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -1292[rbp], eax
	cmp	DWORD PTR -1292[rbp], 0
	jne	.L193
	mov	eax, DWORD PTR -1300[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -1040[rbp], rax
	mov	rax, QWORD PTR -1040[rbp]
	add	rax, 88
	mov	QWORD PTR -1032[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -1032[rbp]
	add	rax, rdx
	mov	QWORD PTR -1024[rbp], rax
	mov	rax, QWORD PTR -1024[rbp]
	mov	DWORD PTR [rax], 0
	jmp	.L193
.L175:
	nop
.L98:
	jmp	.L125
.L176:
	nop
.L100:
	jmp	.L125
.L177:
	nop
.L102:
	jmp	.L125
.L178:
	nop
.L104:
	jmp	.L125
.L179:
	nop
.L106:
	jmp	.L125
.L180:
	nop
.L108:
	jmp	.L125
.L181:
	nop
.L110:
	jmp	.L125
.L182:
	nop
.L112:
	jmp	.L125
.L183:
	nop
.L114:
	jmp	.L125
.L184:
	nop
.L116:
	jmp	.L125
.L185:
	nop
.L118:
	jmp	.L125
.L186:
	nop
.L120:
	jmp	.L125
.L159:
.L122:
	jmp	.L125
.L187:
	nop
.L123:
	jmp	.L125
.L188:
	nop
	jmp	.L63
.L189:
	nop
	jmp	.L63
.L190:
	nop
	jmp	.L63
.L191:
	nop
	jmp	.L63
.L192:
	nop
	jmp	.L63
.L193:
	nop
.L125:
	jmp	.L63
.L160:
	nop
.L63:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L132
	call	__stack_chk_fail@PLT
.L132:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	call_cdev_functions, .-call_cdev_functions
	.globl	call_interrupt_handler
	.type	call_interrupt_handler, @function
call_interrupt_handler:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 112
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -96[rbp], eax
	mov	eax, DWORD PTR -96[rbp]
	mov	WORD PTR -102[rbp], ax
	movzx	eax, WORD PTR -102[rbp]
	mov	DWORD PTR -92[rbp], eax
	cmp	DWORD PTR -92[rbp], 15
	setle	al
	movzx	eax, al
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	movzx	eax, WORD PTR -102[rbp]
	sal	rax, 4
	mov	QWORD PTR -80[rbp], rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L198
	movzx	eax, WORD PTR -102[rbp]
	sal	rax, 4
	mov	QWORD PTR -64[rbp], rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	movzx	eax, WORD PTR -102[rbp]
	mov	DWORD PTR -84[rbp], eax
	movzx	eax, WORD PTR -102[rbp]
	sal	rax, 4
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, -100[rbp]
	mov	rcx, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR -84[rbp]
	mov	r8, QWORD PTR -48[rbp]
	mov	rsi, rcx
	mov	edi, eax
	call	r8
	nop
.L198:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L197
	call	__stack_chk_fail@PLT
.L197:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	call_interrupt_handler, .-call_interrupt_handler
	.globl	create_pci_dev
	.type	create_pci_dev, @function
create_pci_dev:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	create_pci_dev, .-create_pci_dev
	.globl	pci_probe_device
	.type	pci_probe_device, @function
pci_probe_device:
.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, 144
	lea	rax, registered_pci_driver[rip]
	add	rax, 448
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	DWORD PTR [rax], 1
	mov	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR -144[rbp], eax
	lea	rax, registered_pci_driver[rip]
	add	rax, 448
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -140[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	cmp	eax, DWORD PTR -140[rbp]
	setb	al
	movzx	eax, al
	mov	DWORD PTR -136[rbp], eax
	mov	eax, DWORD PTR -136[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	lea	rax, registered_pci_driver[rip]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 16
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	lea	rax, registered_pci_driver[rip]
	add	rax, 8
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, registered_pci_driver[rip]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -144[rbp]
	sal	rax, 5
	mov	rdx, rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -80[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	DWORD PTR -132[rbp], eax
	cmp	DWORD PTR -132[rbp], 0
	jne	.L202
	lea	rax, registered_pci_driver[rip]
	add	rax, 452
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 1
.L202:
	mov	eax, DWORD PTR -132[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	pci_probe_device, .-pci_probe_device
	.globl	pci_remove_device
	.type	pci_remove_device, @function
pci_remove_device:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	lea	rax, registered_pci_driver[rip]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 24
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, registered_pci_driver[rip]
	add	rax, 8
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	rdx
	lea	rax, registered_pci_driver[rip]
	add	rax, 452
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	pci_remove_device, .-pci_remove_device
	.globl	call_pci_functions
	.type	call_pci_functions, @function
call_pci_functions:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	je	.L218
	cmp	DWORD PTR -24[rbp], 1
	jne	.L219
	jmp	.L217
.L218:
	nop
.L208:
	lea	rax, registered_pci_driver[rip]
	add	rax, 452
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L220
	call	pci_probe_device
	jmp	.L220
.L217:
.L210:
	lea	rax, registered_pci_driver[rip]
	add	rax, 452
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L221
	call	pci_remove_device
	jmp	.L221
.L219:
	nop
.L211:
	jmp	.L213
.L220:
	nop
	jmp	.L213
.L221:
	nop
.L213:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	call_pci_functions, .-call_pci_functions
	.globl	call_tasklet_functions
	.type	call_tasklet_functions, @function
call_tasklet_functions:
.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, 256
	cmp	DWORD PTR -252[rbp], 9
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -248[rbp], eax
	mov	eax, DWORD PTR -248[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	QWORD PTR -240[rbp], 0
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	eax, DWORD PTR -252[rbp]
	sal	rax, 4
	mov	QWORD PTR -224[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, rdx
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	cmp	rax, QWORD PTR -232[rbp]
	je	.L225
	mov	eax, DWORD PTR -252[rbp]
	sal	rax, 4
	mov	QWORD PTR -192[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -244[rbp], eax
	cmp	DWORD PTR -244[rbp], 0
	jne	.L225
	mov	eax, DWORD PTR -252[rbp]
	sal	rax, 4
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 8
	mov	QWORD PTR -160[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	WORD PTR [rax], 1
	mov	eax, DWORD PTR -252[rbp]
	sal	rax, 4
	mov	QWORD PTR -144[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -144[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 8
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -104[rbp], rax
	mov	eax, DWORD PTR -252[rbp]
	sal	rax, 4
	mov	QWORD PTR -96[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 16
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -104[rbp]
	mov	rdi, rax
	call	rdx
	mov	eax, DWORD PTR -252[rbp]
	sal	rax, 4
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	mov	QWORD PTR -40[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	WORD PTR [rax], 0
	mov	eax, DWORD PTR -252[rbp]
	sal	rax, 4
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, tasklet_registered[rip]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	nop
.L225:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	call_tasklet_functions, .-call_tasklet_functions
	.globl	call_timer_functions
	.type	call_timer_functions, @function
call_timer_functions:
.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, 160
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -152[rbp], ax
	movzx	eax, WORD PTR -152[rbp]
	mov	WORD PTR -150[rbp], ax
	movzx	eax, WORD PTR number_timer_registered[rip]
	cwde
	mov	DWORD PTR -148[rbp], eax
	movzx	eax, WORD PTR -150[rbp]
	mov	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	cmp	eax, DWORD PTR -148[rbp]
	setl	al
	movzx	eax, al
	mov	DWORD PTR -140[rbp], eax
	mov	eax, DWORD PTR -140[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	movzx	eax, WORD PTR -150[rbp]
	sal	rax, 3
	mov	QWORD PTR -136[rbp], rax
	lea	rdx, timer_registered[rip]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 24
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	movzx	eax, WORD PTR [rax]
	test	ax, ax
	je	.L229
	movzx	eax, WORD PTR -150[rbp]
	sal	rax, 3
	mov	QWORD PTR -96[rbp], rax
	lea	rdx, timer_registered[rip]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 8
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -56[rbp], rax
	movzx	eax, WORD PTR -150[rbp]
	sal	rax, 3
	mov	QWORD PTR -48[rbp], rax
	lea	rdx, timer_registered[rip]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 16
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	rdx
	nop
.L229:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	call_timer_functions, .-call_timer_functions
	.section	.rodata
.LC1:
	.string	"Process context"
	.text
	.type	assert_context_process, @function
assert_context_process:
.LFB25:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, DWORD PTR current_execution_context[rip]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	lea	rsi, .LC1[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	assert_context_process, .-assert_context_process
	.globl	register_chrdev_region
	.type	register_chrdev_region, @function
register_chrdev_region:
.LFB29:
	.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	QWORD PTR -32[rbp], rdx
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	jne	.L233
	mov	DWORD PTR -12[rbp], 1
	jmp	.L234
.L233:
	cmp	DWORD PTR -4[rbp], -1
	jne	.L235
	mov	DWORD PTR -12[rbp], 1
	jmp	.L234
.L235:
	mov	DWORD PTR -12[rbp], 0
.L234:
	mov	eax, DWORD PTR -12[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	register_chrdev_region, .-register_chrdev_region
	.globl	alloc_chrdev_region
	.type	alloc_chrdev_region, @function
alloc_chrdev_region:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -44[rbp], esi
	mov	DWORD PTR -48[rbp], edx
	mov	QWORD PTR -56[rbp], rcx
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -20[rbp], eax
	cmp	DWORD PTR -20[rbp], 0
	jne	.L238
	mov	DWORD PTR -28[rbp], 1
	jmp	.L239
.L238:
	cmp	DWORD PTR -20[rbp], -1
	jne	.L240
	mov	DWORD PTR -28[rbp], 1
	jmp	.L239
.L240:
	mov	DWORD PTR -28[rbp], 0
.L239:
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	cmp	DWORD PTR -20[rbp], 0
	jne	.L241
	mov	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	sal	eax, 20
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	or	eax, DWORD PTR -44[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], edx
.L241:
	mov	eax, DWORD PTR -20[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	alloc_chrdev_region, .-alloc_chrdev_region
	.globl	register_chrdev
	.type	register_chrdev, @function
register_chrdev:
.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, 96
	mov	DWORD PTR -68[rbp], edi
	mov	QWORD PTR -80[rbp], rsi
	mov	QWORD PTR -88[rbp], rdx
	mov	DWORD PTR -56[rbp], 0
	mov	rdx, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR -56[rbp]
	mov	esi, 256
	mov	edi, eax
	call	register_chrdev_region
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	DWORD PTR -68[rbp], eax
	call	cdev_alloc@PLT
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -68[rbp]
	sal	eax, 20
	mov	DWORD PTR -48[rbp], eax
	mov	ecx, DWORD PTR -48[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 256
	mov	esi, ecx
	mov	rdi, rax
	call	cdev_add
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	je	.L244
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, DWORD PTR -44[rbp]
	jmp	.L245
.L244:
	mov	eax, DWORD PTR -68[rbp]
.L245:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	register_chrdev, .-register_chrdev
	.globl	unregister_chrdev
	.type	unregister_chrdev, @function
unregister_chrdev:
.LFB32:
	.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
.LFE32:
	.size	unregister_chrdev, .-unregister_chrdev
	.globl	cdev_add
	.type	cdev_add, @function
cdev_add:
.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, 176
	mov	QWORD PTR -168[rbp], rdi
	mov	DWORD PTR -172[rbp], esi
	mov	DWORD PTR -176[rbp], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 16
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	edx, DWORD PTR -172[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 20
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -176[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -156[rbp], eax
	mov	eax, DWORD PTR -156[rbp]
	mov	DWORD PTR -152[rbp], eax
	cmp	DWORD PTR -152[rbp], 0
	jne	.L249
	mov	DWORD PTR -160[rbp], 1
	jmp	.L250
.L249:
	cmp	DWORD PTR -152[rbp], -1
	jne	.L251
	mov	DWORD PTR -160[rbp], 1
	jmp	.L250
.L251:
	mov	DWORD PTR -160[rbp], 0
.L250:
	mov	eax, DWORD PTR -160[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	cmp	DWORD PTR -152[rbp], 0
	jne	.L252
	movzx	eax, WORD PTR number_cdev_registered[rip]
	cwde
	mov	DWORD PTR -148[rbp], eax
	cmp	DWORD PTR -148[rbp], 9
	jg	.L253
	movzx	eax, WORD PTR number_cdev_registered[rip]
	movsx	rdx, ax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -104[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -88[rbp], 68
	movzx	eax, WORD PTR number_cdev_registered[rip]
	movsx	rdx, ax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -80[rbp], rax
	mov	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR -172[rbp]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -56[rbp], 80
	movzx	eax, WORD PTR number_cdev_registered[rip]
	movsx	rdx, ax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	QWORD PTR [rax], rdx
	movzx	eax, WORD PTR number_cdev_registered[rip]
	movsx	rdx, ax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 88
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
	movzx	eax, WORD PTR number_cdev_registered[rip]
	cwde
	mov	DWORD PTR -144[rbp], eax
	mov	eax, DWORD PTR -144[rbp]
	add	eax, 1
	mov	DWORD PTR -140[rbp], eax
	mov	eax, DWORD PTR -140[rbp]
	mov	WORD PTR number_cdev_registered[rip], ax
	jmp	.L252
.L253:
	mov	eax, -1
	jmp	.L254
.L252:
	mov	eax, DWORD PTR -152[rbp]
.L254:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	cdev_add, .-cdev_add
	.globl	cdev_del
	.type	cdev_del, @function
cdev_del:
.LFB35:
	.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 -72[rbp], rdi
	mov	DWORD PTR -64[rbp], 0
.L256:
	movzx	eax, WORD PTR number_cdev_registered[rip]
	cwde
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -64[rbp]
	cmp	eax, DWORD PTR -60[rbp]
	jge	.L262
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -64[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -48[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -56[rbp]
	jne	.L259
	mov	eax, DWORD PTR -64[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 5
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, cdev_registered[rip]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L255
.L259:
	add	DWORD PTR -64[rbp], 1
	jmp	.L256
.L262:
	nop
.L258:
	nop
.L255:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	cdev_del, .-cdev_del
	.globl	cdev_init
	.type	cdev_init, @function
cdev_init:
.LFB36:
	.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	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	cdev_init, .-cdev_init
	.section	.rodata
	.align 8
.LC2:
	.string	"Locked mutex must not be reinitialized"
	.text
	.globl	mutex_init
	.type	mutex_init, @function
mutex_init:
.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, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	sete	al
	movzx	eax, al
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	lea	rsi, .LC2[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 4
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 1
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	mutex_init, .-mutex_init
	.section	.rodata
.LC3:
	.string	"Unlock a not locked mutex"
	.text
	.globl	mutex_unlock
	.type	mutex_unlock, @function
mutex_unlock:
.LFB39:
	.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, 0
	call	__CPROVER_atomic_begin@PLT
	call	assert_context_process
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	lea	rsi, .LC3[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 0
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	mutex_unlock, .-mutex_unlock
	.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:
.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	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	DWORD PTR -20[rbp], 32
	mov	eax, DWORD PTR -20[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR ddv_ioport_request_start[rip], eax
	mov	rax, QWORD PTR -48[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
.LFE40:
	.size	request_region, .-request_region
	.globl	release_region
	.type	release_region, @function
release_region:
.LFB41:
	.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
.LFE41:
	.size	release_region, .-release_region
	.globl	schedule
	.type	schedule, @function
schedule:
.LFB48:
	.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
.LFE48:
	.size	schedule, .-schedule
	.globl	schedule_timeout
	.type	schedule_timeout, @function
schedule_timeout:
.LFB49:
	.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	__VERIFIER_nondet_long@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	schedule_timeout, .-schedule_timeout
	.globl	tasklet_init
	.type	tasklet_init, @function
tasklet_init:
.LFB58:
	.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 -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	QWORD PTR -72[rbp], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 24
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 8
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 16
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	tasklet_init, .-tasklet_init
	.globl	spin_lock_init
	.type	spin_lock_init, @function
spin_lock_init:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 4
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	spin_lock_init, .-spin_lock_init
	.globl	init_timer
	.type	init_timer, @function
init_timer:
.LFB64:
	.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 -72[rbp], rdi
	movzx	eax, WORD PTR number_timer_registered[rip]
	cwde
	mov	DWORD PTR -60[rbp], eax
	cmp	DWORD PTR -60[rbp], 4
	jg	.L284
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 24
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	WORD PTR [rax], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 26
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	WORD PTR [rax], 1
	movzx	eax, WORD PTR number_timer_registered[rip]
	movsx	rax, ax
	sal	rax, 3
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, timer_registered[rip]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
	movzx	eax, WORD PTR number_timer_registered[rip]
	cwde
	mov	DWORD PTR -56[rbp], eax
	mov	eax, DWORD PTR -56[rbp]
	add	eax, 1
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	WORD PTR number_timer_registered[rip], ax
	nop
.L284:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	init_timer, .-init_timer
	.globl	add_timer_on
	.type	add_timer_on, @function
add_timer_on:
.LFB66:
	.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	DWORD PTR -12[rbp], esi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	add_timer@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	add_timer_on, .-add_timer_on
	.section	.rodata
.LC4:
	.string	"Timer is initialized"
	.text
	.globl	mod_timer
	.type	mod_timer, @function
mod_timer:
.LFB67:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 26
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -38[rbp], ax
	movsx	eax, WORD PTR -38[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rsi, .LC4[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 24
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], 1
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	mod_timer, .-mod_timer
	.globl	del_timer
	.type	del_timer, @function
del_timer:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 24
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	WORD PTR [rax], 0
	mov	eax, 0
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	del_timer, .-del_timer
	.globl	init_waitqueue_head
	.type	init_waitqueue_head, @function
init_waitqueue_head:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 8
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 1
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	init_waitqueue_head, .-init_waitqueue_head
	.globl	call_shared_workqueue_functions
	.type	call_shared_workqueue_functions, @function
call_shared_workqueue_functions:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 192
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -180[rbp], ax
	movzx	eax, WORD PTR -180[rbp]
	mov	WORD PTR -178[rbp], ax
	movzx	eax, WORD PTR -178[rbp]
	mov	DWORD PTR -176[rbp], eax
	cmp	DWORD PTR -176[rbp], 9
	setle	al
	movzx	eax, al
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	QWORD PTR -168[rbp], 0
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -160[rbp], rax
	movzx	eax, WORD PTR -178[rbp]
	sal	rax, 3
	mov	QWORD PTR -152[rbp], rax
	lea	rdx, shared_workqueue[rip]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	cmp	rax, QWORD PTR -160[rbp]
	je	.L296
	movzx	eax, WORD PTR -178[rbp]
	sal	rax, 3
	mov	QWORD PTR -120[rbp], rax
	lea	rdx, shared_workqueue[rip]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 8
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	movzx	eax, WORD PTR -178[rbp]
	sal	rax, 3
	mov	QWORD PTR -72[rbp], rax
	lea	rdx, shared_workqueue[rip]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 16
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	rdx
	movzx	eax, WORD PTR -178[rbp]
	sal	rax, 3
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, shared_workqueue[rip]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	nop
.L296:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	call_shared_workqueue_functions, .-call_shared_workqueue_functions
	.globl	free_irq
	.type	free_irq, @function
free_irq:
.LFB73:
	.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 -52[rbp], edi
	mov	QWORD PTR -64[rbp], rsi
	mov	eax, DWORD PTR -52[rbp]
	sal	rax, 4
	mov	QWORD PTR -48[rbp], rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -48[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	QWORD PTR -32[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	rdx, QWORD PTR -32[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -52[rbp]
	sal	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	free_irq, .-free_irq
	.globl	request_irq
	.type	request_irq, @function
request_irq:
.LFB74:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 96
	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	QWORD PTR -88[rbp], r8
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	je	.L300
	mov	eax, DWORD PTR -52[rbp]
	sal	rax, 4
	mov	QWORD PTR -40[rbp], rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -52[rbp]
	sal	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 8
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, registered_irq[rip]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
	jmp	.L301
.L300:
	mov	eax, -1
.L301:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	request_irq, .-request_irq
	.globl	get_zeroed_page
	.type	get_zeroed_page, @function
get_zeroed_page:
.LFB75:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 16
	test	eax, eax
	je	.L303
	call	assert_context_process
.L303:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	get_zeroed_page, .-get_zeroed_page
	.globl	alloc_pages
	.type	alloc_pages, @function
alloc_pages:
.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, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 16
	test	eax, eax
	je	.L306
	call	assert_context_process
.L306:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	alloc_pages, .-alloc_pages
	.globl	__get_free_pages
	.type	__get_free_pages, @function
__get_free_pages:
.LFB78:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	mov	eax, DWORD PTR -4[rbp]
	and	eax, 16
	test	eax, eax
	je	.L309
	call	assert_context_process
.L309:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE78:
	.size	__get_free_pages, .-__get_free_pages
	.globl	kmalloc
	.type	kmalloc, @function
kmalloc:
.LFB80:
	.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	.L312
	call	assert_context_process
.L312:
	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
.LFE80:
	.size	kmalloc, .-kmalloc
	.globl	kzalloc
	.type	kzalloc, @function
kzalloc:
.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, 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	.L315
	call	assert_context_process
.L315:
	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
.LFE81:
	.size	kzalloc, .-kzalloc
	.globl	vmalloc
	.type	vmalloc, @function
vmalloc:
.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, 32
	mov	QWORD PTR -24[rbp], rdi
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[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
.LFE82:
	.size	vmalloc, .-vmalloc
	.globl	misc_register
	.type	misc_register, @function
misc_register:
.LFB83:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -120[rbp], rdi
	mov	eax, DWORD PTR fixed_cdev_used[rip]
	cmp	eax, 9
	jg	.L320
	mov	eax, DWORD PTR fixed_cdev_used[rip]
	mov	DWORD PTR -104[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 -104[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -80[rbp], rax
	lea	rdx, fixed_cdev[rip]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	lea	rdx, __this_module[rip]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	QWORD PTR -56[rbp], rax
	lea	rdx, fixed_cdev[rip]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 16
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -100[rbp], eax
	mov	DWORD PTR -96[rbp], 10485760
	mov	eax, DWORD PTR -96[rbp]
	or	eax, DWORD PTR -100[rbp]
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, fixed_cdev[rip]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	ecx, DWORD PTR -88[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	rdi, rax
	call	cdev_add
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	jmp	.L321
.L320:
	mov	eax, -1
.L321:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	misc_register, .-misc_register
	.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:
.LFB84:
	.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 global_tty_driver[rip+320]
	test	ax, ax
	jne	.L323
	mov	DWORD PTR global_tty_driver[rip], 21506
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR global_tty_driver[rip+72], eax
	mov	eax, 0
	jmp	.L325
.L323:
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -8[rbp]
.L325:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	alloc_tty_driver, .-alloc_tty_driver
	.globl	tty_set_operations
	.type	tty_set_operations, @function
tty_set_operations:
.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, 808
	mov	QWORD PTR -920[rbp], rdi
	mov	QWORD PTR -928[rbp], rsi
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	add	rax, 136
	mov	QWORD PTR -896[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -896[rbp]
	mov	rdx, QWORD PTR -888[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -880[rbp], rax
	mov	rax, QWORD PTR -880[rbp]
	add	rax, 144
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -864[rbp], rax
	mov	rax, QWORD PTR -864[rbp]
	add	rax, 8
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -856[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -848[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	mov	rdx, QWORD PTR -848[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -840[rbp]
	add	rax, 152
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -824[rbp]
	add	rax, 16
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR -816[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -832[rbp]
	mov	rdx, QWORD PTR -808[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 160
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -784[rbp], rax
	mov	rax, QWORD PTR -784[rbp]
	add	rax, 24
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -776[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	mov	rdx, QWORD PTR -768[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -760[rbp]
	add	rax, 168
	mov	QWORD PTR -752[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	add	rax, 32
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -752[rbp]
	mov	rdx, QWORD PTR -728[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -720[rbp]
	add	rax, 176
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -704[rbp]
	add	rax, 40
	mov	QWORD PTR -696[rbp], rax
	mov	rax, QWORD PTR -696[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -688[rbp], rax
	mov	rax, QWORD PTR -712[rbp]
	mov	rdx, QWORD PTR -688[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -680[rbp], rax
	mov	rax, QWORD PTR -680[rbp]
	add	rax, 184
	mov	QWORD PTR -672[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -664[rbp]
	add	rax, 48
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -656[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -648[rbp], rax
	mov	rax, QWORD PTR -672[rbp]
	mov	rdx, QWORD PTR -648[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -640[rbp]
	add	rax, 192
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	add	rax, 56
	mov	QWORD PTR -616[rbp], rax
	mov	rax, QWORD PTR -616[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	mov	rdx, QWORD PTR -608[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	add	rax, 200
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	add	rax, 64
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	mov	rdx, QWORD PTR -568[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -560[rbp]
	add	rax, 208
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	add	rax, 72
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -536[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	mov	rdx, QWORD PTR -528[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	add	rax, 216
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	add	rax, 80
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	mov	rdx, QWORD PTR -488[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 224
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	add	rax, 88
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rdx, QWORD PTR -448[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	add	rax, 232
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	add	rax, 96
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	mov	rdx, QWORD PTR -408[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, 240
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -384[rbp]
	add	rax, 104
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rdx, QWORD PTR -368[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	add	rax, 248
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	add	rax, 112
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	mov	rdx, QWORD PTR -328[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 256
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 120
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR -288[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 264
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	sub	rax, -128
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	rdx, QWORD PTR -248[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 272
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 136
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rdx, QWORD PTR -208[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 280
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 144
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 288
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 152
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -128[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 296
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 160
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 304
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 168
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 312
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 176
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	tty_set_operations, .-tty_set_operations
	.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	"126704282.c"
	.text
	.comm	current_execution_context,4,4
	.comm	_ddv_module_init,4,4
	.comm	_ddv_module_exit,4,4
	.comm	jiffies,4,4
	.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, #-5]
	ldr	r3, [fp, #-16]
	ldrb	r2, [fp, #-5]
	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 = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]
	eor	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__CPROVER_assume
	ldr	r3, [fp, #-16]
	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
.LC0:
	.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 = 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, [fp, #-16]
	ldrb	r3, [r3]
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r1, .L9
	ldr	r0, [fp, #-8]
	bl	__CPROVER_assert
	ldr	r3, [fp, #-16]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L10:
	.align	2
.L9:
	.word	.LC0
	.size	pthread_mutex_unlock, .-pthread_mutex_unlock
	.comm	current_stack_pointer,4,4
	.global	_ddv_module_param_timeout
	.data
	.align	2
	.type	_ddv_module_param_timeout, %object
	.size	_ddv_module_param_timeout, 66
_ddv_module_param_timeout:
	.ascii	"Watchdog timeout in seconds (60..15300), default=DE"
	.ascii	"FAULT_TIMEOUT)\000"
	.global	_ddv_module_param_testmode
	.align	2
	.type	_ddv_module_param_testmode, %object
	.size	_ddv_module_param_testmode, 45
_ddv_module_param_testmode:
	.ascii	"Watchdog testmode (1 = no reboot), default=0\000"
	.global	_ddv_module_param_nowayout
	.align	2
	.type	_ddv_module_param_nowayout, %object
	.size	_ddv_module_param_nowayout, 75
_ddv_module_param_nowayout:
	.ascii	"Watchdog cannot be stopped once started (default=CO"
	.ascii	"NFIG_WATCHDOG_NOWAYOUT)\000"
	.global	_ddv_module_author
	.align	2
	.type	_ddv_module_author, %object
	.size	_ddv_module_author, 36
_ddv_module_author:
	.ascii	"Woody Suwalski <woodys@xandros.com>\000"
	.global	_ddv_module_description
	.align	2
	.type	_ddv_module_description, %object
	.size	_ddv_module_description, 25
_ddv_module_description:
	.ascii	"W83977AF Watchdog driver\000"
	.global	_ddv_module_license
	.align	2
	.type	_ddv_module_license, %object
	.size	_ddv_module_license, 4
_ddv_module_license:
	.ascii	"GPL\000"
	.text
	.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
	bl	call_ddv
	mov	r3, #0
	mov	r0, r3
	pop	{fp, pc}
	.size	main, .-main
	.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,800,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 = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	ldr	r0, .L25
	bl	spin_lock_init
	mov	r3, #0
	str	r3, [fp, #-44]
.L14:
	ldr	r3, [fp, #-44]
	cmp	r3, #9
	bgt	.L23
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r2, .L25+4
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	b	.L14
.L23:
	nop
.L16:
	mov	r3, #0
	str	r3, [fp, #-44]
.L17:
	ldr	r3, [fp, #-44]
	cmp	r3, #9
	bgt	.L24
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r2, .L25+8
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	str	r3, [fp, #-24]
	ldr	r2, .L25+8
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	b	.L17
.L24:
	nop
.L19:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L26:
	.align	2
.L25:
	.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]
.L28:
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]
	cmp	r3, #1
	beq	.L50
	ldrh	r3, [fp, #-6]
	cmp	r3, #2
	beq	.L51
	ldrh	r3, [fp, #-6]
	cmp	r3, #3
	beq	.L52
	ldrh	r3, [fp, #-6]
	cmp	r3, #4
	beq	.L53
	ldrh	r3, [fp, #-6]
	cmp	r3, #5
	bne	.L54
	b	.L48
.L50:
	nop
.L30:
	b	.L40
.L51:
	nop
.L32:
	ldr	r3, .L56
	mov	r2, #2
	str	r2, [r3]
	bl	call_timer_functions
	ldr	r3, .L56
	mov	r2, #1
	str	r2, [r3]
	b	.L40
.L52:
	nop
.L34:
	ldr	r3, .L56
	mov	r2, #2
	str	r2, [r3]
	bl	call_interrupt_handler
	ldr	r3, .L56
	mov	r2, #1
	str	r2, [r3]
	b	.L40
.L53:
	nop
.L36:
	ldr	r3, .L56
	mov	r2, #1
	str	r2, [r3]
	bl	call_shared_workqueue_functions
	ldr	r3, .L56
	mov	r2, #1
	str	r2, [r3]
	b	.L40
.L48:
.L38:
	ldr	r3, .L56
	mov	r2, #2
	str	r2, [r3]
	bl	call_tasklet_functions
	ldr	r3, .L56
	mov	r2, #1
	str	r2, [r3]
	b	.L40
.L54:
	nop
.L39:
	nop
.L40:
	ldrh	r3, [fp, #-6]
	cmp	r3, #0
	beq	.L55
	b	.L28
.L55:
	nop
.L42:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L57:
	.align	2
.L56:
	.word	current_execution_context
	.size	ddv_2, .-ddv_2
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ddv
	.syntax unified
	.arm
	.fpu softvfp
	.type	ddv, %function
ddv:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	ldr	r3, .L66
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	sub	r0, fp, #28
	ldr	r3, [fp, #-16]
	ldr	r2, .L66+4
	ldr	r1, [fp, #-20]
	bl	pthread_create
.L59:
	ldr	r3, .L66+8
	mov	r2, #1
	str	r2, [r3]
	bl	call_cdev_functions
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L65
	b	.L59
.L65:
	nop
.L61:
	nop
	ldr	r3, .L66
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L63
	bl	__stack_chk_fail
.L63:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L67:
	.align	2
.L66:
	.word	.LC1
	.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, .L71
	mov	r2, #1
	str	r2, [r3]
	bl	init_kernel
	bl	wd977_init
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L69
	mvn	r3, #0
	b	.L70
.L69:
	bl	ddv
	ldr	r3, .L71
	mov	r2, #1
	str	r2, [r3]
	bl	wd977_exit
	mov	r3, #0
.L70:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L72:
	.align	2
.L71:
	.word	current_execution_context
	.size	call_ddv, .-call_ddv
	.section	.rodata
	.align	2
.LC2:
	.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 = 696
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #708
	ldr	r3, .L204
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L204+4
	ldrsh	r3, [r3]
	str	r3, [fp, #-692]
	ldr	r3, [fp, #-692]
	cmp	r3, #0
	beq	.L170
	sub	r3, fp, #12
	sub	r4, r3, #688
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [r4]	@ movhi
	sub	r3, fp, #12
	sub	r3, r3, #688
	ldrh	r3, [r3]
	str	r3, [fp, #-688]
	ldr	r3, [fp, #-688]
	cmp	r3, #0
	blt	.L76
	ldr	r3, .L204+4
	ldrsh	r3, [r3]
	str	r3, [fp, #-684]
	ldr	r2, [fp, #-688]
	ldr	r3, [fp, #-684]
	cmp	r2, r3
	bge	.L77
	mov	r3, #1
	str	r3, [fp, #-696]
	b	.L78
.L77:
	mov	r3, #0
	str	r3, [fp, #-696]
	b	.L78
.L76:
	mov	r3, #0
	str	r3, [fp, #-696]
.L78:
	ldr	r0, [fp, #-696]
	bl	__CPROVER_assume
	sub	r3, fp, #12
	sub	r4, r3, #684
	sub	r4, r4, #2
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [r4]	@ movhi
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #0
	beq	.L171
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #1
	beq	.L172
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #2
	beq	.L173
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #3
	beq	.L174
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #4
	beq	.L175
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #5
	beq	.L176
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #6
	beq	.L177
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #7
	beq	.L178
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #8
	beq	.L179
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #9
	beq	.L180
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #10
	beq	.L181
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #11
	beq	.L182
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #12
	beq	.L183
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #13
	beq	.L184
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #14
	beq	.L185
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #15
	beq	.L186
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #16
	beq	.L187
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #17
	beq	.L188
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #18
	beq	.L189
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #19
	beq	.L190
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #20
	beq	.L191
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #21
	beq	.L192
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #22
	beq	.L193
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #23
	beq	.L194
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #24
	beq	.L195
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #25
	beq	.L196
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #26
	bne	.L197
	b	.L169
.L171:
	nop
.L80:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-132]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-132]
	add	r3, r3, r2
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	ldr	r3, [r3]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	add	r3, r3, #8
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L198
	sub	r3, fp, #36
	str	r3, [fp, #-100]
	bl	__VERIFIER_nondet_loff_t
	mov	r2, r0
	mov	r3, r1
	ldr	r1, [fp, #-100]
	stm	r1, {r2-r3}
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-96]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-92]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-92]
	add	r3, r3, r2
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	add	r3, r3, #8
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	add	r3, r3, #8
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	str	r3, [fp, #-52]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-52]
	add	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-44]
	sub	r3, fp, #36
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-96]
	str	r3, [sp]
	ldr	r1, [fp, #-60]
	sub	r3, fp, #28
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-44]
	blx	r1
	b	.L198
.L172:
	nop
.L82:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-220]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-220]
	add	r3, r3, r2
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	add	r3, r3, #8
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	ldr	r3, [r3]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	add	r3, r3, #16
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L199
	sub	r3, fp, #700
	sub	r3, r3, #1
	str	r3, [fp, #-188]
	bl	__VERIFIER_nondet_char
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-188]
	strb	r2, [r3]
	bl	__VERIFIER_nondet_size_t
	str	r0, [fp, #-280]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-184]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-184]
	add	r3, r3, r2
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	ldr	r3, [r3]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	add	r3, r3, #8
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #16
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	ldr	r3, [r3]
	str	r3, [fp, #-152]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	add	r3, r3, #8
	str	r3, [fp, #-144]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-144]
	add	r3, r3, r2
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	str	r3, [fp, #-136]
	sub	r3, fp, #36
	sub	r1, fp, #700
	sub	r1, r1, #1
	ldr	r4, [fp, #-152]
	ldr	r2, [fp, #-280]
	ldr	r0, [fp, #-136]
	blx	r4
	b	.L199
.L173:
	nop
.L84:
	b	.L135
.L174:
	nop
.L86:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-316]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-316]
	add	r3, r3, r2
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-312]
	ldr	r3, [r3]
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	add	r3, r3, #8
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-300]
	ldr	r3, [r3]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	add	r3, r3, #24
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L200
	sub	r3, fp, #700
	sub	r3, r3, #1
	str	r3, [fp, #-284]
	bl	__VERIFIER_nondet_char
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-284]
	strb	r2, [r3]
	bl	__VERIFIER_nondet_size_t
	str	r0, [fp, #-280]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-276]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-276]
	add	r3, r3, r2
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3]
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	add	r3, r3, #8
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-260]
	ldr	r3, [r3]
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	add	r3, r3, #24
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	ldr	r3, [r3]
	str	r3, [fp, #-244]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	add	r3, r3, #8
	str	r3, [fp, #-236]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-236]
	add	r3, r3, r2
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	str	r3, [fp, #-228]
	sub	r3, fp, #700
	sub	r3, r3, #1
	str	r3, [fp, #-224]
	sub	r3, fp, #36
	ldr	r4, [fp, #-244]
	ldr	r2, [fp, #-280]
	ldr	r1, [fp, #-224]
	ldr	r0, [fp, #-228]
	blx	r4
	b	.L200
.L175:
	nop
.L88:
	b	.L135
.L176:
	nop
.L90:
	b	.L135
.L177:
	nop
.L92:
	b	.L135
.L178:
	nop
.L94:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-424]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-424]
	add	r3, r3, r2
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-420]
	ldr	r3, [r3]
	str	r3, [fp, #-416]
	ldr	r3, [fp, #-416]
	str	r3, [fp, #-412]
	ldr	r3, [fp, #-412]
	add	r3, r3, #8
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-408]
	ldr	r3, [r3]
	str	r3, [fp, #-404]
	ldr	r3, [fp, #-404]
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-400]
	add	r3, r3, #48
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-396]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L201
	bl	__VERIFIER_nondet_uint
	str	r0, [fp, #-392]
	bl	__VERIFIER_nondet_ulong
	str	r0, [fp, #-388]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-384]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-384]
	add	r3, r3, r2
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-380]
	ldr	r3, [r3]
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-372]
	add	r3, r3, #8
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-368]
	ldr	r3, [r3]
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-360]
	add	r3, r3, #48
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	ldr	r3, [r3]
	str	r3, [fp, #-352]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-348]
	add	r3, r3, #64
	str	r3, [fp, #-344]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-344]
	add	r3, r3, r2
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	str	r3, [fp, #-336]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	add	r3, r3, #8
	str	r3, [fp, #-328]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-328]
	add	r3, r3, r2
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	str	r3, [fp, #-320]
	ldr	r4, [fp, #-352]
	ldr	r3, [fp, #-388]
	ldr	r2, [fp, #-392]
	ldr	r1, [fp, #-320]
	ldr	r0, [fp, #-336]
	blx	r4
	b	.L201
.L179:
	nop
.L96:
	b	.L135
.L180:
	nop
.L98:
	b	.L135
.L181:
	nop
.L100:
	b	.L135
.L182:
	nop
.L102:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-552]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-552]
	add	r3, r3, r2
	str	r3, [fp, #-548]
	ldr	r3, [fp, #-548]
	ldr	r3, [r3]
	str	r3, [fp, #-544]
	ldr	r3, [fp, #-544]
	str	r3, [fp, #-540]
	ldr	r3, [fp, #-540]
	add	r3, r3, #8
	str	r3, [fp, #-536]
	ldr	r3, [fp, #-536]
	ldr	r3, [r3]
	str	r3, [fp, #-532]
	ldr	r3, [fp, #-532]
	str	r3, [fp, #-528]
	ldr	r3, [fp, #-528]
	add	r3, r3, #80
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-524]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L202
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-520]
	ldr	r3, [fp, #-520]
	add	r3, r3, #88
	str	r3, [fp, #-516]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-516]
	add	r3, r3, r2
	str	r3, [fp, #-512]
	ldr	r3, [fp, #-512]
	ldr	r3, [r3]
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-508]
	cmp	r3, #0
	bne	.L202
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-504]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-504]
	add	r3, r3, r2
	str	r3, [fp, #-500]
	ldr	r3, [fp, #-500]
	ldr	r3, [r3]
	str	r3, [fp, #-496]
	ldr	r3, [fp, #-496]
	str	r3, [fp, #-492]
	ldr	r3, [fp, #-492]
	add	r3, r3, #8
	str	r3, [fp, #-488]
	ldr	r3, [fp, #-488]
	ldr	r3, [r3]
	str	r3, [fp, #-484]
	ldr	r3, [fp, #-484]
	str	r3, [fp, #-480]
	ldr	r3, [fp, #-480]
	add	r3, r3, #80
	str	r3, [fp, #-476]
	ldr	r3, [fp, #-476]
	ldr	r3, [r3]
	str	r3, [fp, #-472]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-468]
	add	r3, r3, #64
	str	r3, [fp, #-464]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-464]
	add	r3, r3, r2
	str	r3, [fp, #-460]
	ldr	r3, [fp, #-460]
	str	r3, [fp, #-456]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-452]
	add	r3, r3, #8
	str	r3, [fp, #-448]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-448]
	add	r3, r3, r2
	str	r3, [fp, #-444]
	ldr	r3, [fp, #-444]
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-472]
	ldr	r1, [fp, #-440]
	ldr	r0, [fp, #-456]
	blx	r3
	str	r0, [fp, #-568]
	ldr	r3, [fp, #-568]
	cmp	r3, #0
	bne	.L202
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-436]
	add	r3, r3, #88
	str	r3, [fp, #-432]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-432]
	add	r3, r3, r2
	str	r3, [fp, #-428]
	ldr	r3, [fp, #-428]
	mov	r2, #1
	str	r2, [r3]
	b	.L202
.L183:
	nop
.L104:
	b	.L135
.L184:
	nop
.L106:
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-680]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-680]
	add	r3, r3, r2
	str	r3, [fp, #-676]
	ldr	r3, [fp, #-676]
	ldr	r3, [r3]
	str	r3, [fp, #-672]
	ldr	r3, [fp, #-672]
	str	r3, [fp, #-668]
	ldr	r3, [fp, #-668]
	add	r3, r3, #8
	str	r3, [fp, #-664]
	ldr	r3, [fp, #-664]
	ldr	r3, [r3]
	str	r3, [fp, #-660]
	ldr	r3, [fp, #-660]
	str	r3, [fp, #-656]
	ldr	r3, [fp, #-656]
	add	r3, r3, #96
	str	r3, [fp, #-652]
	ldr	r3, [fp, #-652]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L203
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-648]
	ldr	r3, [fp, #-648]
	add	r3, r3, #88
	str	r3, [fp, #-644]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-644]
	add	r3, r3, r2
	str	r3, [fp, #-640]
	ldr	r3, [fp, #-640]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L203
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-636]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-636]
	add	r3, r3, r2
	str	r3, [fp, #-632]
	ldr	r3, [fp, #-632]
	ldr	r3, [r3]
	str	r3, [fp, #-628]
	ldr	r3, [fp, #-628]
	str	r3, [fp, #-624]
	ldr	r3, [fp, #-624]
	add	r3, r3, #8
	str	r3, [fp, #-620]
	ldr	r3, [fp, #-620]
	ldr	r3, [r3]
	str	r3, [fp, #-616]
	ldr	r3, [fp, #-616]
	str	r3, [fp, #-612]
	ldr	r3, [fp, #-612]
	add	r3, r3, #96
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-608]
	ldr	r3, [r3]
	str	r3, [fp, #-604]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-600]
	ldr	r3, [fp, #-600]
	add	r3, r3, #64
	str	r3, [fp, #-596]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-596]
	add	r3, r3, r2
	str	r3, [fp, #-592]
	ldr	r3, [fp, #-592]
	str	r3, [fp, #-588]
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-584]
	ldr	r3, [fp, #-584]
	add	r3, r3, #8
	str	r3, [fp, #-580]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-580]
	add	r3, r3, r2
	str	r3, [fp, #-576]
	ldr	r3, [fp, #-576]
	str	r3, [fp, #-572]
	ldr	r3, [fp, #-604]
	ldr	r1, [fp, #-572]
	ldr	r0, [fp, #-588]
	blx	r3
	str	r0, [fp, #-568]
	ldr	r3, [fp, #-568]
	cmp	r3, #0
	bne	.L203
	ldr	r2, [fp, #-688]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-564]
	ldr	r3, [fp, #-564]
	add	r3, r3, #88
	str	r3, [fp, #-560]
	ldr	r2, .L204+8
	ldr	r3, [fp, #-560]
	add	r3, r3, r2
	str	r3, [fp, #-556]
	ldr	r3, [fp, #-556]
	mov	r2, #0
	str	r2, [r3]
	b	.L203
.L185:
	nop
.L108:
	b	.L135
.L186:
	nop
.L110:
	b	.L135
.L187:
	nop
.L112:
	b	.L135
.L188:
	nop
.L114:
	b	.L135
.L189:
	nop
.L116:
	b	.L135
.L190:
	nop
.L118:
	b	.L135
.L191:
	nop
.L120:
	b	.L135
.L192:
	nop
.L122:
	b	.L135
.L193:
	nop
.L124:
	b	.L135
.L194:
	nop
.L126:
	b	.L135
.L195:
	nop
.L128:
	b	.L135
.L196:
	nop
.L130:
	b	.L135
.L169:
.L132:
	b	.L135
.L197:
	nop
.L133:
	b	.L135
.L198:
	nop
	b	.L73
.L199:
	nop
	b	.L73
.L200:
	nop
	b	.L73
.L201:
	nop
	b	.L73
.L202:
	nop
	b	.L73
.L203:
	nop
.L135:
	b	.L73
.L170:
	nop
.L73:
	ldr	r3, .L204
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L142
	bl	__stack_chk_fail
.L142:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L205:
	.align	2
.L204:
	.word	.LC2
	.word	number_cdev_registered
	.word	cdev_registered
	.size	call_cdev_functions, .-call_cdev_functions
	.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 = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	ldr	r3, .L211
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	strh	r3, [fp, #-66]	@ movhi
	ldrh	r3, [fp, #-66]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #15
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-52]
	ldr	r0, [fp, #-52]
	bl	__CPROVER_assume
	ldrh	r3, [fp, #-66]
	lsl	r3, r3, #4
	str	r3, [fp, #-48]
	ldr	r2, .L211+4
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L210
	ldrh	r3, [fp, #-66]
	lsl	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r2, .L211+4
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldrh	r3, [fp, #-66]
	str	r3, [fp, #-28]
	ldrh	r3, [fp, #-66]
	lsl	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #8
	str	r3, [fp, #-20]
	ldr	r2, .L211+4
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	sub	r2, fp, #64
	ldr	r3, [fp, #-32]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-28]
	blx	r3
	nop
.L210:
	nop
	ldr	r3, .L211
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L209
	bl	__stack_chk_fail
.L209:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L212:
	.align	2
.L211:
	.word	.LC3
	.word	registered_irq
	.size	call_interrupt_handler, .-call_interrupt_handler
	.align	2
	.global	create_pci_dev
	.syntax unified
	.arm
	.fpu softvfp
	.type	create_pci_dev, %function
create_pci_dev:
	@ 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
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	create_pci_dev, .-create_pci_dev
	.align	2
	.global	pci_probe_device
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_probe_device, %function
pci_probe_device:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	ldr	r3, .L218
	add	r3, r3, #448
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	mov	r2, #1
	str	r2, [r3]
	bl	__VERIFIER_nondet_uint
	str	r0, [fp, #-80]
	ldr	r3, .L218
	add	r3, r3, #448
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-72]
	cmp	r2, r3
	movcc	r3, #1
	movcs	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-68]
	ldr	r0, [fp, #-68]
	bl	__CPROVER_assume
	ldr	r3, .L218
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #16
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, .L218
	add	r3, r3, #8
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, .L218
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-80]
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #2
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-48]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-40]
	blx	r3
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bne	.L216
	ldr	r3, .L218
	add	r3, r3, #452
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3]
.L216:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L219:
	.align	2
.L218:
	.word	registered_pci_driver
	.size	pci_probe_device, .-pci_probe_device
	.align	2
	.global	pci_remove_device
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_remove_device, %function
pci_remove_device:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	ldr	r3, .L222
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #24
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, .L222
	add	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	ldr	r0, [fp, #-12]
	blx	r3
	ldr	r3, .L222
	add	r3, r3, #452
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L223:
	.align	2
.L222:
	.word	registered_pci_driver
	.size	pci_remove_device, .-pci_remove_device
	.align	2
	.global	call_pci_functions
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_pci_functions, %function
call_pci_functions:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	bl	__VERIFIER_nondet_uint
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L236
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L237
	b	.L235
.L236:
	nop
.L226:
	ldr	r3, .L240
	add	r3, r3, #452
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L238
	bl	pci_probe_device
	b	.L238
.L235:
.L228:
	ldr	r3, .L240
	add	r3, r3, #452
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L239
	bl	pci_remove_device
	b	.L239
.L237:
	nop
.L229:
	b	.L231
.L238:
	nop
	b	.L231
.L239:
	nop
.L231:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L241:
	.align	2
.L240:
	.word	registered_pci_driver
	.size	call_pci_functions, .-call_pci_functions
	.align	2
	.global	call_tasklet_functions
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_tasklet_functions, %function
call_tasklet_functions:
	@ args = 0, pretend = 0, frame = 136
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #136
	ldr	r3, [fp, #-136]
	cmp	r3, #9
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-132]
	ldr	r0, [fp, #-132]
	bl	__CPROVER_assume
	mov	r3, #0
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-120]
	ldr	r2, .L246
	ldr	r3, [fp, #-120]
	add	r3, r3, r2
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	ldr	r3, [r3]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-108]
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	beq	.L245
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-104]
	ldr	r2, .L246
	ldr	r3, [fp, #-104]
	add	r3, r3, r2
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	cmp	r3, #0
	bne	.L245
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	str	r3, [fp, #-84]
	ldr	r2, .L246
	ldr	r3, [fp, #-84]
	add	r3, r3, r2
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-76]
	ldr	r2, .L246
	ldr	r3, [fp, #-76]
	add	r3, r3, r2
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	add	r3, r3, #8
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-52]
	ldr	r2, .L246
	ldr	r3, [fp, #-52]
	add	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r3, r3, #16
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-56]
	ldr	r0, [fp, #-32]
	blx	r3
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	str	r3, [fp, #-24]
	ldr	r2, .L246
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r2, .L246
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
.L245:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L247:
	.align	2
.L246:
	.word	tasklet_registered
	.size	call_tasklet_functions, .-call_tasklet_functions
	.align	2
	.global	call_timer_functions
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_timer_functions, %function
call_timer_functions:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-88]	@ movhi
	ldrh	r3, [fp, #-88]	@ movhi
	strh	r3, [fp, #-86]	@ movhi
	ldr	r3, .L252
	ldrsh	r3, [r3]
	str	r3, [fp, #-84]
	ldrh	r3, [fp, #-86]
	str	r3, [fp, #-80]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-76]
	ldr	r0, [fp, #-76]
	bl	__CPROVER_assume
	ldrh	r3, [fp, #-86]
	lsl	r3, r3, #3
	str	r3, [fp, #-72]
	ldr	r2, .L252+4
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #24
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L251
	ldrh	r3, [fp, #-86]
	lsl	r3, r3, #3
	str	r3, [fp, #-52]
	ldr	r2, .L252+4
	ldr	r3, [fp, #-52]
	add	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldrh	r3, [fp, #-86]
	lsl	r3, r3, #3
	str	r3, [fp, #-28]
	ldr	r2, .L252+4
	ldr	r3, [fp, #-28]
	add	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #16
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-32]
	ldr	r0, [fp, #-8]
	blx	r3
	nop
.L251:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L253:
	.align	2
.L252:
	.word	number_timer_registered
	.word	timer_registered
	.size	call_timer_functions, .-call_timer_functions
	.section	.rodata
	.align	2
.LC4:
	.ascii	"Process context\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	assert_context_process, %function
assert_context_process:
	@ 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, .L256
	ldr	r3, [r3]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r1, .L256+4
	ldr	r0, [fp, #-8]
	bl	__CPROVER_assert
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L257:
	.align	2
.L256:
	.word	current_execution_context
	.word	.LC4
	.size	assert_context_process, .-assert_context_process
	.align	2
	.global	register_chrdev_region
	.syntax unified
	.arm
	.fpu softvfp
	.type	register_chrdev_region, %function
register_chrdev_region:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L259
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L260
.L259:
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L261
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L260
.L261:
	mov	r3, #0
	str	r3, [fp, #-16]
.L260:
	ldr	r0, [fp, #-16]
	bl	__CPROVER_assume
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	register_chrdev_region, .-register_chrdev_region
	.align	2
	.global	alloc_chrdev_region
	.syntax unified
	.arm
	.fpu softvfp
	.type	alloc_chrdev_region, %function
alloc_chrdev_region:
	@ 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, #-40]
	str	r1, [fp, #-44]
	str	r2, [fp, #-48]
	str	r3, [fp, #-52]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L264
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L265
.L264:
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	bne	.L266
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L265
.L266:
	mov	r3, #0
	str	r3, [fp, #-32]
.L265:
	ldr	r0, [fp, #-32]
	bl	__CPROVER_assume
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L267
	bl	__VERIFIER_nondet_uint
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #20
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-44]
	orr	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3]
.L267:
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	alloc_chrdev_region, .-alloc_chrdev_region
	.align	2
	.global	register_chrdev
	.syntax unified
	.arm
	.fpu softvfp
	.type	register_chrdev, %function
register_chrdev:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	str	r2, [fp, #-56]
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-52]
	mov	r1, #256
	ldr	r0, [fp, #-40]
	bl	register_chrdev_region
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-48]
	bl	cdev_alloc
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #8
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #20
	str	r3, [fp, #-16]
	mov	r2, #256
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-32]
	bl	cdev_add
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L270
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	kfree
	ldr	r3, [fp, #-12]
	b	.L271
.L270:
	ldr	r3, [fp, #-48]
.L271:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	register_chrdev, .-register_chrdev
	.align	2
	.global	unregister_chrdev
	.syntax unified
	.arm
	.fpu softvfp
	.type	unregister_chrdev, %function
unregister_chrdev:
	@ 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_chrdev, .-unregister_chrdev
	.align	2
	.global	cdev_add
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdev_add, %function
cdev_add:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #112
	str	r0, [fp, #-104]
	str	r1, [fp, #-108]
	str	r2, [fp, #-112]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	add	r3, r3, #16
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	ldr	r2, [fp, #-108]
	str	r2, [r3]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #20
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-112]
	str	r2, [r3]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L275
	mov	r3, #1
	str	r3, [fp, #-96]
	b	.L276
.L275:
	ldr	r3, [fp, #-72]
	cmn	r3, #1
	bne	.L277
	mov	r3, #1
	str	r3, [fp, #-96]
	b	.L276
.L277:
	mov	r3, #0
	str	r3, [fp, #-96]
.L276:
	ldr	r0, [fp, #-96]
	bl	__CPROVER_assume
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L278
	ldr	r3, .L281
	ldrsh	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #9
	bgt	.L279
	ldr	r3, .L281
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-64]
	ldr	r2, .L281+4
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-104]
	str	r2, [r3]
	mov	r3, #68
	str	r3, [fp, #-56]
	ldr	r3, .L281
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r2, .L281+4
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-108]
	str	r2, [r3]
	mov	r3, #80
	str	r3, [fp, #-40]
	ldr	r3, .L281
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, .L281+4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-104]
	str	r2, [r3]
	ldr	r3, .L281
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #88
	str	r3, [fp, #-20]
	ldr	r2, .L281+4
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L281
	ldrsh	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L281
	strh	r3, [r2]	@ movhi
	b	.L278
.L279:
	mvn	r3, #0
	b	.L280
.L278:
	ldr	r3, [fp, #-72]
.L280:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L282:
	.align	2
.L281:
	.word	number_cdev_registered
	.word	cdev_registered
	.size	cdev_add, .-cdev_add
	.align	2
	.global	cdev_del
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdev_del, %function
cdev_del:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-40]
.L284:
	ldr	r3, .L291
	ldrsh	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bge	.L290
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-28]
	ldr	r2, .L291+4
	ldr	r3, [fp, #-28]
	add	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	bne	.L287
	ldr	r2, [fp, #-40]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #5
	str	r3, [fp, #-12]
	ldr	r2, .L291+4
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	b	.L283
.L287:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
	b	.L284
.L290:
	nop
.L286:
	nop
.L283:
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L292:
	.align	2
.L291:
	.word	number_cdev_registered
	.word	cdev_registered
	.size	cdev_del, .-cdev_del
	.align	2
	.global	cdev_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	cdev_init, %function
cdev_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]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	cdev_init, .-cdev_init
	.section	.rodata
	.align	2
.LC5:
	.ascii	"Locked mutex must not be reinitialized\000"
	.text
	.align	2
	.global	mutex_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	mutex_init, %function
mutex_init:
	@ 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]
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-16]
	ldr	r1, .L297
	ldr	r0, [fp, #-16]
	bl	__CPROVER_assert
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3]
	bl	__CPROVER_atomic_end
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L298:
	.align	2
.L297:
	.word	.LC5
	.size	mutex_init, .-mutex_init
	.section	.rodata
	.align	2
.LC6:
	.ascii	"Unlock a not locked mutex\000"
	.text
	.align	2
	.global	mutex_unlock
	.syntax unified
	.arm
	.fpu softvfp
	.type	mutex_unlock, %function
mutex_unlock:
	@ 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	__CPROVER_atomic_begin
	bl	assert_context_process
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r1, .L301
	ldr	r0, [fp, #-8]
	bl	__CPROVER_assert
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	bl	__CPROVER_atomic_end
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L302:
	.align	2
.L301:
	.word	.LC6
	.size	mutex_unlock, .-mutex_unlock
	.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 = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	mov	r3, #32
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-24]
	ldr	r2, .L305
	str	r3, [r2]
	ldr	r3, [fp, #-28]
	ldr	r2, .L305+4
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L306:
	.align	2
.L305:
	.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, .L309
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L309+4
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L310:
	.align	2
.L309:
	.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	__VERIFIER_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	tasklet_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	tasklet_init, %function
tasklet_init:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #44
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #24
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #16
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tasklet_init, .-tasklet_init
	.align	2
	.global	spin_lock_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_lock_init, %function
spin_lock_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]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	spin_lock_init, .-spin_lock_init
	.align	2
	.global	init_timer
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_timer, %function
init_timer:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #52
	str	r0, [fp, #-48]
	ldr	r3, .L323
	ldrsh	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #4
	bgt	.L322
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #24
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #26
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r3, .L323
	ldrsh	r3, [r3]
	lsl	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L323+4
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, .L323
	ldrsh	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L323
	strh	r3, [r2]	@ movhi
	nop
.L322:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L324:
	.align	2
.L323:
	.word	number_timer_registered
	.word	timer_registered
	.size	init_timer, .-init_timer
	.align	2
	.global	add_timer_on
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_timer_on, %function
add_timer_on:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r0, [fp, #-8]
	bl	add_timer
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	add_timer_on, .-add_timer_on
	.section	.rodata
	.align	2
.LC7:
	.ascii	"Timer is initialized\000"
	.text
	.align	2
	.global	mod_timer
	.syntax unified
	.arm
	.fpu softvfp
	.type	mod_timer, %function
mod_timer:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #26
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldrh	r3, [r3]	@ movhi
	strh	r3, [fp, #-26]	@ movhi
	ldrsh	r3, [fp, #-26]
	str	r3, [fp, #-16]
	ldr	r1, .L329
	ldr	r0, [fp, #-16]
	bl	__CPROVER_assert
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #24
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L330:
	.align	2
.L329:
	.word	.LC7
	.size	mod_timer, .-mod_timer
	.align	2
	.global	del_timer
	.syntax unified
	.arm
	.fpu softvfp
	.type	del_timer, %function
del_timer:
	@ 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, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #24
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	del_timer, .-del_timer
	.align	2
	.global	init_waitqueue_head
	.syntax unified
	.arm
	.fpu softvfp
	.type	init_waitqueue_head, %function
init_waitqueue_head:
	@ 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, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #8
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	init_waitqueue_head, .-init_waitqueue_head
	.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 = 96
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #96
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-100]	@ movhi
	ldrh	r3, [fp, #-100]	@ movhi
	strh	r3, [fp, #-98]	@ movhi
	ldrh	r3, [fp, #-98]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #9
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-92]
	ldr	r0, [fp, #-92]
	bl	__CPROVER_assume
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-84]
	ldrh	r3, [fp, #-98]
	lsl	r3, r3, #3
	str	r3, [fp, #-80]
	ldr	r2, .L339
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-84]
	cmp	r2, r3
	beq	.L338
	ldrh	r3, [fp, #-98]
	lsl	r3, r3, #3
	str	r3, [fp, #-64]
	ldr	r2, .L339
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldrh	r3, [fp, #-98]
	lsl	r3, r3, #3
	str	r3, [fp, #-40]
	ldr	r2, .L339
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #16
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-44]
	ldr	r0, [fp, #-20]
	blx	r3
	ldrh	r3, [fp, #-98]
	lsl	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r2, .L339
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
.L338:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L340:
	.align	2
.L339:
	.word	shared_workqueue
	.size	call_shared_workqueue_functions, .-call_shared_workqueue_functions
	.align	2
	.global	free_irq
	.syntax unified
	.arm
	.fpu softvfp
	.type	free_irq, %function
free_irq:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #36
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	str	r3, [fp, #-28]
	ldr	r2, .L343
	ldr	r3, [fp, #-28]
	add	r3, r3, r2
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-24]
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r2, .L343
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L344:
	.align	2
.L343:
	.word	registered_irq
	.size	free_irq, .-free_irq
	.align	2
	.global	request_irq
	.syntax unified
	.arm
	.fpu softvfp
	.type	request_irq, %function
request_irq:
	@ args = 4, 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]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L346
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r2, .L348
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-36]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r2, .L348
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #4]
	str	r2, [r3]
	mov	r3, #0
	b	.L347
.L346:
	mvn	r3, #0
.L347:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L349:
	.align	2
.L348:
	.word	registered_irq
	.size	request_irq, .-request_irq
	.align	2
	.global	get_zeroed_page
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_zeroed_page, %function
get_zeroed_page:
	@ 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]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L351
	bl	assert_context_process
.L351:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	get_zeroed_page, .-get_zeroed_page
	.align	2
	.global	alloc_pages
	.syntax unified
	.arm
	.fpu softvfp
	.type	alloc_pages, %function
alloc_pages:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L354
	bl	assert_context_process
.L354:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	alloc_pages, .-alloc_pages
	.align	2
	.global	__get_free_pages
	.syntax unified
	.arm
	.fpu softvfp
	.type	__get_free_pages, %function
__get_free_pages:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L357
	bl	assert_context_process
.L357:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	__get_free_pages, .-__get_free_pages
	.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	.L360
	bl	assert_context_process
.L360:
	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	.L363
	bl	assert_context_process
.L363:
	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	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	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	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	misc_register
	.syntax unified
	.arm
	.fpu softvfp
	.type	misc_register, %function
misc_register:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-72]
	ldr	r3, .L370
	ldr	r3, [r3]
	cmp	r3, #9
	bgt	.L368
	ldr	r3, .L370
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, .L370
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L370
	str	r3, [r2]
	ldr	r2, [fp, #-68]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-64]
	ldr	r2, .L370+4
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r2, .L370+8
	str	r2, [r3]
	ldr	r2, [fp, #-68]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	str	r3, [fp, #-52]
	ldr	r2, .L370+4
	ldr	r3, [fp, #-52]
	add	r3, r3, r2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #16
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-48]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	mov	r3, #10485760
	str	r3, [fp, #-32]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-36]
	orr	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-68]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L370+4
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	mov	r2, #0
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-12]
	bl	cdev_add
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L369
.L368:
	mvn	r3, #0
.L369:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L371:
	.align	2
.L370:
	.word	fixed_cdev_used
	.word	fixed_cdev
	.word	__this_module
	.size	misc_register, .-misc_register
	.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 = 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, .L376
	ldrh	r3, [r3, #196]
	cmp	r3, #0
	bne	.L373
	ldr	r3, .L376
	ldr	r2, .L376+4
	str	r2, [r3]
	ldr	r2, .L376
	ldr	r3, [fp, #-16]
	str	r3, [r2, #48]
	mov	r3, #0
	b	.L375
.L373:
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
.L375:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L377:
	.align	2
.L376:
	.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 = 464
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #468
	str	r0, [fp, #-464]
	str	r1, [fp, #-468]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-456]
	add	r3, r3, #136
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-468]
	ldr	r3, [r3]
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-452]
	ldr	r2, [fp, #-448]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-444]
	ldr	r3, [fp, #-444]
	add	r3, r3, #144
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-436]
	add	r3, r3, #8
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	ldr	r3, [r3]
	str	r3, [fp, #-428]
	ldr	r3, [fp, #-440]
	ldr	r2, [fp, #-428]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-424]
	add	r3, r3, #152
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-416]
	ldr	r3, [fp, #-416]
	add	r3, r3, #16
	str	r3, [fp, #-412]
	ldr	r3, [fp, #-412]
	ldr	r3, [r3]
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-420]
	ldr	r2, [fp, #-408]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-404]
	ldr	r3, [fp, #-404]
	add	r3, r3, #160
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-396]
	add	r3, r3, #24
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	ldr	r3, [r3]
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-400]
	ldr	r2, [fp, #-388]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-384]
	add	r3, r3, #168
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	add	r3, r3, #32
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-372]
	ldr	r3, [r3]
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-380]
	ldr	r2, [fp, #-368]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	add	r3, r3, #176
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	add	r3, r3, #40
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-360]
	ldr	r2, [fp, #-348]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-344]
	add	r3, r3, #184
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	add	r3, r3, #48
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	ldr	r3, [r3]
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-340]
	ldr	r2, [fp, #-328]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	add	r3, r3, #192
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-316]
	add	r3, r3, #56
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-312]
	ldr	r3, [r3]
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-320]
	ldr	r2, [fp, #-308]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	add	r3, r3, #200
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	add	r3, r3, #64
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	ldr	r3, [r3]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-300]
	ldr	r2, [fp, #-288]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	add	r3, r3, #208
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-276]
	add	r3, r3, #72
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3]
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-280]
	ldr	r2, [fp, #-268]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	add	r3, r3, #216
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	add	r3, r3, #80
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	ldr	r3, [r3]
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-260]
	ldr	r2, [fp, #-248]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	add	r3, r3, #224
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	add	r3, r3, #88
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-240]
	ldr	r2, [fp, #-228]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	add	r3, r3, #232
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	add	r3, r3, #96
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	ldr	r3, [r3]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-220]
	ldr	r2, [fp, #-208]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	add	r3, r3, #240
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	add	r3, r3, #104
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3]
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-200]
	ldr	r2, [fp, #-188]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	add	r3, r3, #248
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	add	r3, r3, #112
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-180]
	ldr	r2, [fp, #-168]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	add	r3, r3, #256
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	add	r3, r3, #120
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-148]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	add	r3, r3, #264
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	add	r3, r3, #128
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-140]
	ldr	r2, [fp, #-128]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	add	r3, r3, #272
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	add	r3, r3, #136
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-108]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	add	r3, r3, #280
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	add	r3, r3, #144
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-100]
	ldr	r2, [fp, #-88]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #288
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #152
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-68]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	add	r3, r3, #296
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #160
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #304
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #168
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	ldr	r3, [fp, #-464]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #312
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #176
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	tty_set_operations, .-tty_set_operations
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
