	.file	"36075517.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
	.type	dev_get_drvdata, @function
dev_get_drvdata:
.LFB4:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR [rax]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	dev_get_drvdata, .-dev_get_drvdata
	.type	dev_set_drvdata, @function
dev_set_drvdata:
.LFB5:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	dev_set_drvdata, .-dev_set_drvdata
	.type	iminor, @function
iminor:
.LFB6:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -28[rbp], 1048576
	mov	eax, DWORD PTR -28[rbp]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	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	eax, DWORD PTR [rax]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	and	eax, DWORD PTR -24[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	iminor, .-iminor
	.type	pci_read_config_byte, @function
pci_read_config_byte:
.LFB7:
	.cfi_startproc
	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	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[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	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rcx, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	esi, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	pci_bus_read_config_byte@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	pci_read_config_byte, .-pci_read_config_byte
	.type	pci_read_config_word, @function
pci_read_config_word:
.LFB8:
	.cfi_startproc
	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	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[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	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rcx, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	esi, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	pci_bus_read_config_word@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	pci_read_config_word, .-pci_read_config_word
	.type	pci_read_config_dword, @function
pci_read_config_dword:
.LFB9:
	.cfi_startproc
	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	QWORD PTR -56[rbp], rdx
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[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	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rcx, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -44[rbp]
	mov	esi, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	pci_bus_read_config_dword@PLT
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	pci_read_config_dword, .-pci_read_config_dword
	.type	pci_get_drvdata, @function
pci_get_drvdata:
.LFB10:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 40
	mov	QWORD PTR -40[rbp], rdi
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 32
	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	rdi, rax
	call	dev_get_drvdata
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	pci_get_drvdata, .-pci_get_drvdata
	.type	pci_set_drvdata, @function
pci_set_drvdata:
.LFB11:
	.cfi_startproc
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 32
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	dev_set_drvdata
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	pci_set_drvdata, .-pci_set_drvdata
	.type	set_capacity, @function
set_capacity:
.LFB12:
	.cfi_startproc
	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, 72
	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
.LFE12:
	.size	set_capacity, .-set_capacity
	.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_author
	.data
	.align 16
	.type	_ddv_module_author, @object
	.size	_ddv_module_author, 28
_ddv_module_author:
	.string	"Compaq Computer Corporation"
	.globl	_ddv_module_description
	.align 32
	.type	_ddv_module_description, @object
	.size	_ddv_module_description, 57
_ddv_module_description:
	.string	"Driver for Compaq Smart2 Array Controllers version 2.6.0"
	.globl	_ddv_module_license
	.type	_ddv_module_license, @object
	.size	_ddv_module_license, 4
_ddv_module_license:
	.string	"GPL"
	.text
	.type	smart4_submit_command, @function
smart4_submit_command:
.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, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 284
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 72
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 64
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writel@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	smart4_submit_command, .-smart4_submit_command
	.type	smart4_intr_mask, @function
smart4_intr_mask:
.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, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	cmp	QWORD PTR -80[rbp], 0
	je	.L30
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 72
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 52
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	writel@PLT
	jmp	.L29
.L30:
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 72
	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]
	add	rax, 52
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rax
	mov	edi, 8
	call	writel@PLT
	nop
.L29:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	smart4_intr_mask, .-smart4_intr_mask
	.type	smart4_fifo_full, @function
smart4_fifo_full:
.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, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 72
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 64
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	readl@PLT
	mov	DWORD PTR -44[rbp], eax
	cmp	DWORD PTR -44[rbp], 0
	je	.L34
	mov	DWORD PTR -48[rbp], 0
	jmp	.L35
.L34:
	mov	DWORD PTR -48[rbp], 1
.L35:
	mov	eax, DWORD PTR -48[rbp]
	cdqe
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	smart4_fifo_full, .-smart4_fifo_full
	.type	smart4_completed, @function
smart4_completed:
.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, 112
	mov	QWORD PTR -104[rbp], rdi
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 72
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 68
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	readl@PLT
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, 4294967295
	cmp	QWORD PTR -40[rbp], rax
	jne	.L38
	mov	eax, 0
	jmp	.L39
.L38:
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 72
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 68
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rax
	mov	edi, 0
	call	writel@PLT
	mov	rax, QWORD PTR -40[rbp]
.L39:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	smart4_completed, .-smart4_completed
	.type	smart4_intr_pending, @function
smart4_intr_pending:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 72
	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]
	add	rax, 48
	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	rdi, rax
	call	readl@PLT
	mov	DWORD PTR -52[rbp], eax
	mov	eax, DWORD PTR -52[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	and	eax, 8
	test	rax, rax
	je	.L41
	mov	eax, 1
	jmp	.L42
.L41:
	mov	eax, 0
.L42:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	smart4_intr_pending, .-smart4_intr_pending
	.section	.data.rel.local,"aw"
	.align 32
	.type	smart4_access, @object
	.size	smart4_access, 40
smart4_access:
	.quad	smart4_submit_command
	.quad	smart4_intr_mask
	.quad	smart4_fifo_full
	.quad	smart4_intr_pending
	.quad	smart4_completed
	.text
	.type	smart2_submit_command, @function
smart2_submit_command:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 284
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -52[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 72
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 4
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -52[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writel@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	smart2_submit_command, .-smart2_submit_command
	.type	smart2_intr_mask, @function
smart2_intr_mask:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 72
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 12
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -36[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	writel@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	smart2_intr_mask, .-smart2_intr_mask
	.type	smart2_fifo_full, @function
smart2_fifo_full:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 72
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 4
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	readl@PLT
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	smart2_fifo_full, .-smart2_fifo_full
	.type	smart2_completed, @function
smart2_completed:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 72
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	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	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	readl@PLT
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	smart2_completed, .-smart2_completed
	.type	smart2_intr_pending, @function
smart2_intr_pending:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 72
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 20
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	readl@PLT
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	smart2_intr_pending, .-smart2_intr_pending
	.section	.data.rel.local
	.align 32
	.type	smart2_access, @object
	.size	smart2_access, 40
smart2_access:
	.quad	smart2_submit_command
	.quad	smart2_intr_mask
	.quad	smart2_fifo_full
	.quad	smart2_intr_pending
	.quad	smart2_completed
	.text
	.type	smart2e_submit_command, @function
smart2e_submit_command:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	QWORD PTR -80[rbp], rsi
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 284
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -56[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	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 -52[rbp], eax
	mov	edx, DWORD PTR -52[rbp]
	mov	eax, DWORD PTR -56[rbp]
	mov	esi, edx
	mov	edi, eax
	call	outl
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	smart2e_submit_command, .-smart2e_submit_command
	.type	smart2e_intr_mask, @function
smart2e_intr_mask:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	QWORD PTR -64[rbp], rsi
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 12
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -36[rbp], eax
	mov	edx, DWORD PTR -36[rbp]
	mov	eax, DWORD PTR -40[rbp]
	mov	esi, edx
	mov	edi, eax
	call	outl
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	smart2e_intr_mask, .-smart2e_intr_mask
	.type	smart2e_fifo_full, @function
smart2e_fifo_full:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	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 -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	inl
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	smart2e_fifo_full, .-smart2e_fifo_full
	.type	smart2e_completed, @function
smart2e_completed:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	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 -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	inl
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	smart2e_completed, .-smart2e_completed
	.type	smart2e_intr_pending, @function
smart2e_intr_pending:
.LFB27:
	.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	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 20
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	mov	edi, eax
	call	inl
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	smart2e_intr_pending, .-smart2e_intr_pending
	.section	.data.rel.local
	.align 32
	.type	smart2e_access, @object
	.size	smart2e_access, 40
smart2e_access:
	.quad	smart2e_submit_command
	.quad	smart2e_intr_mask
	.quad	smart2e_fifo_full
	.quad	smart2e_intr_pending
	.quad	smart2e_completed
	.text
	.type	smart1_submit_command, @function
smart1_submit_command:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 240
	mov	QWORD PTR -232[rbp], rdi
	mov	QWORD PTR -240[rbp], rsi
	mov	QWORD PTR -184[rbp], 2
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	WORD PTR [rax], 0
	mov	rax, QWORD PTR -232[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 88
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 3215
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR -208[rbp], eax
	mov	eax, DWORD PTR -208[rbp]
	mov	esi, eax
	mov	edi, 2
	call	outb
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 284
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -204[rbp], eax
	mov	rax, QWORD PTR -232[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 88
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 3216
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR -200[rbp], eax
	mov	edx, DWORD PTR -200[rbp]
	mov	eax, DWORD PTR -204[rbp]
	mov	esi, edx
	mov	edi, eax
	call	outl
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 276
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -196[rbp], eax
	mov	eax, DWORD PTR -196[rbp]
	mov	WORD PTR -210[rbp], ax
	mov	rax, QWORD PTR -232[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 88
	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]
	add	rax, 3220
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR -192[rbp], eax
	movzx	eax, WORD PTR -210[rbp]
	mov	edx, DWORD PTR -192[rbp]
	mov	esi, edx
	mov	edi, eax
	call	outw
	mov	rax, QWORD PTR -232[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 3213
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -188[rbp], eax
	mov	eax, DWORD PTR -188[rbp]
	mov	esi, eax
	mov	edi, 1
	call	outb
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	smart1_submit_command, .-smart1_submit_command
	.type	smart1_intr_mask, @function
smart1_intr_mask:
.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, 208
	mov	QWORD PTR -200[rbp], rdi
	mov	QWORD PTR -208[rbp], rsi
	cmp	QWORD PTR -208[rbp], 1
	jne	.L66
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 88
	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]
	add	rax, 3215
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR -176[rbp], eax
	mov	eax, DWORD PTR -176[rbp]
	mov	esi, eax
	mov	edi, 253
	call	outb
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 88
	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]
	add	rax, 3213
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR -172[rbp], eax
	mov	eax, DWORD PTR -172[rbp]
	mov	esi, eax
	mov	edi, 1
	call	outb
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 88
	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]
	add	rax, 3209
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	DWORD PTR -168[rbp], eax
	mov	eax, DWORD PTR -168[rbp]
	mov	esi, eax
	mov	edi, 1
	call	outb
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 3214
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -164[rbp]
	mov	esi, eax
	mov	edi, 1
	call	outb
	jmp	.L65
.L66:
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 88
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 3214
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	DWORD PTR -180[rbp], eax
	mov	eax, DWORD PTR -180[rbp]
	mov	esi, eax
	mov	edi, 0
	call	outb
	nop
.L65:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	smart1_intr_mask, .-smart1_intr_mask
	.type	smart1_fifo_full, @function
smart1_fifo_full:
.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 -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 3215
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	inb
	mov	BYTE PTR -46[rbp], al
	movzx	eax, BYTE PTR -46[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	and	eax, 2
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	BYTE PTR -45[rbp], al
	movzx	eax, BYTE PTR -45[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	smart1_fifo_full, .-smart1_fifo_full
	.type	smart1_completed, @function
smart1_completed:
.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, 272
	mov	QWORD PTR -264[rbp], rdi
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 88
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 3215
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	DWORD PTR -244[rbp], eax
	mov	eax, DWORD PTR -244[rbp]
	mov	edi, eax
	call	inb
	mov	BYTE PTR -246[rbp], al
	movzx	eax, BYTE PTR -246[rbp]
	mov	DWORD PTR -240[rbp], eax
	mov	eax, DWORD PTR -240[rbp]
	and	eax, 1
	test	eax, eax
	je	.L72
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 88
	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]
	add	rax, 3215
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR -236[rbp], eax
	mov	eax, DWORD PTR -236[rbp]
	mov	esi, eax
	mov	edi, 1
	call	outb
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 88
	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]
	add	rax, 3224
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR -232[rbp], eax
	mov	eax, DWORD PTR -232[rbp]
	mov	edi, eax
	call	inl
	mov	DWORD PTR -228[rbp], eax
	mov	eax, DWORD PTR -228[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 88
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 3230
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR -224[rbp], eax
	mov	eax, DWORD PTR -224[rbp]
	mov	edi, eax
	call	inb
	mov	BYTE PTR -245[rbp], al
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 88
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 3213
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR -220[rbp], eax
	mov	eax, DWORD PTR -220[rbp]
	mov	esi, eax
	mov	edi, 2
	call	outb
	cmp	QWORD PTR -216[rbp], 0
	je	.L73
	mov	rax, QWORD PTR -216[rbp]
	mov	rdi, rax
	call	phys_to_virt@PLT
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], 3
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rdx, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, BYTE PTR -245[rbp]
	mov	BYTE PTR [rax], dl
	jmp	.L73
.L72:
	mov	QWORD PTR -216[rbp], 0
.L73:
	mov	rax, QWORD PTR -216[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	smart1_completed, .-smart1_completed
	.type	smart1_intr_pending, @function
smart1_intr_pending:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -56[rbp], rdi
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 3215
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -44[rbp], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	edi, eax
	call	inb
	mov	BYTE PTR -46[rbp], al
	movzx	eax, BYTE PTR -46[rbp]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	and	eax, 1
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	BYTE PTR -45[rbp], al
	movzx	eax, BYTE PTR -45[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	smart1_intr_pending, .-smart1_intr_pending
	.section	.data.rel.local
	.align 32
	.type	smart1_access, @object
	.size	smart1_access, 40
smart1_access:
	.quad	smart1_submit_command
	.quad	smart1_intr_mask
	.quad	smart1_fifo_full
	.quad	smart1_intr_pending
	.quad	smart1_completed
	.globl	nr_ctlr
	.bss
	.align 4
	.type	nr_ctlr, @object
	.size	nr_ctlr, 4
nr_ctlr:
	.zero	4
	.globl	hba
	.align 32
	.type	hba, @object
	.size	hba, 64
hba:
	.zero	64
	.globl	eisa
	.align 32
	.type	eisa, @object
	.size	eisa, 32
eisa:
	.zero	32
	.globl	products
	.section	.rodata
.LC1:
	.string	"IDA"
.LC2:
	.string	"IDA-2"
.LC3:
	.string	"IAES"
.LC4:
	.string	"SMART"
.LC5:
	.string	"SMART-2/E"
.LC6:
	.string	"SMART-2/P"
.LC7:
	.string	"SMART-2SL"
.LC8:
	.string	"Smart Array 3200"
.LC9:
	.string	"Smart Array 3100ES"
.LC10:
	.string	"Smart Array 221"
.LC11:
	.string	"Integrated Array"
.LC12:
	.string	"Compaq Raid LC2"
.LC13:
	.string	"Smart Array 4200"
.LC14:
	.string	"Smart Array 4250ES"
.LC15:
	.string	"Smart Array 431"
	.section	.data.rel.local
	.align 32
	.type	products, @object
	.size	products, 360
products:
	.long	4198670
	.zero	4
	.quad	.LC1
	.quad	smart1_access
	.long	20975886
	.zero	4
	.quad	.LC2
	.quad	smart1_access
	.long	272634126
	.zero	4
	.quad	.LC3
	.quad	smart1_access
	.long	541069582
	.zero	4
	.quad	.LC4
	.quad	smart1_access
	.long	809505038
	.zero	4
	.quad	.LC5
	.quad	smart2e_access
	.long	1076891153
	.zero	4
	.quad	.LC6
	.quad	smart2_access
	.long	1076956689
	.zero	4
	.quad	.LC7
	.quad	smart2_access
	.long	1077022225
	.zero	4
	.quad	.LC8
	.quad	smart2_access
	.long	1077087761
	.zero	4
	.quad	.LC9
	.quad	smart2_access
	.long	1077153297
	.zero	4
	.quad	.LC10
	.quad	smart2_access
	.long	1077939729
	.zero	4
	.quad	.LC11
	.quad	smart4_access
	.long	1078464017
	.zero	4
	.quad	.LC12
	.quad	smart4_access
	.long	1078988305
	.zero	4
	.quad	.LC13
	.quad	smart4_access
	.long	1079053841
	.zero	4
	.quad	.LC14
	.quad	smart4_access
	.long	1079512593
	.zero	4
	.quad	.LC15
	.quad	smart4_access
	.globl	cpqarray_pci_device_id
	.section	.rodata
	.align 32
	.type	cpqarray_pci_device_id, @object
	.size	cpqarray_pci_device_id, 352
cpqarray_pci_device_id:
	.long	4113
	.long	70
	.long	3601
	.long	16472
	.long	0
	.long	0
	.quad	0
	.long	4113
	.long	70
	.long	3601
	.long	16465
	.long	0
	.long	0
	.quad	0
	.long	4113
	.long	70
	.long	3601
	.long	16464
	.long	0
	.long	0
	.quad	0
	.long	4096
	.long	16
	.long	3601
	.long	16456
	.long	0
	.long	0
	.quad	0
	.long	4096
	.long	16
	.long	3601
	.long	16448
	.long	0
	.long	0
	.quad	0
	.long	3601
	.long	44560
	.long	3601
	.long	16436
	.long	0
	.long	0
	.quad	0
	.long	3601
	.long	44560
	.long	3601
	.long	16435
	.long	0
	.long	0
	.quad	0
	.long	3601
	.long	44560
	.long	3601
	.long	16434
	.long	0
	.long	0
	.quad	0
	.long	3601
	.long	44560
	.long	3601
	.long	16433
	.long	0
	.long	0
	.quad	0
	.long	3601
	.long	44560
	.long	3601
	.long	16432
	.long	0
	.long	0
	.quad	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.long	0
	.quad	0
	.globl	ida_gendisk
	.bss
	.align 32
	.type	ida_gendisk, @object
	.size	ida_gendisk, 1024
ida_gendisk:
	.zero	1024
	.globl	ida_fops
	.section	.data.rel,"aw"
	.align 32
	.type	ida_fops, @object
	.size	ida_fops, 80
ida_fops:
	.quad	ida_open
	.quad	ida_release
	.quad	ida_ioctl
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.quad	ida_revalidate
	.quad	ida_getgeo
	.quad	__this_module
	.globl	proc_array
	.bss
	.align 8
	.type	proc_array, @object
	.size	proc_array, 8
proc_array:
	.zero	8
	.section	.rodata
.LC16:
	.string	"cpqarray"
	.text
	.globl	ida_procinit
	.type	ida_procinit, @function
ida_procinit:
.LFB35:
	.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	DWORD PTR -116[rbp], edi
	mov	QWORD PTR -112[rbp], 0
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR proc_array[rip]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	cmp	rax, QWORD PTR -104[rbp]
	jne	.L78
	mov	rax, QWORD PTR proc_root_driver[rip]
	mov	rsi, rax
	lea	rdi, .LC16[rip]
	call	proc_mkdir@PLT
	mov	QWORD PTR proc_array[rip], rax
	mov	rax, QWORD PTR proc_array[rip]
	test	rax, rax
	je	.L80
.L78:
	mov	QWORD PTR -88[rbp], 0
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 4
	mov	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -72[rbp], rax
	lea	rdx, hba[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	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -116[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR proc_array[rip]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	r8, rcx
	lea	rcx, ida_proc_get_info[rip]
	mov	esi, 0
	mov	rdi, rax
	mov	eax, 0
	call	create_proc_read_entry@PLT
	jmp	.L77
.L80:
	nop
.L77:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	ida_procinit, .-ida_procinit
	.section	.rodata
	.align 8
.LC17:
	.ascii	"%s:  Compaq %s Controller\n       Board ID: 0x%0"
	.string	"8lx\n       Firmware Revision: %c%c%c%c\n       Controller Sig: 0x%08lx\n       Memory Address: 0x%08lx\n       I/O Port: 0x%04x\n       IRQ: %d\n       Logical drives: %d\n       Physical drives: %d\n\n       Current Q depth: %d\n       Max Q depth since init: %d\n\n"
.LC18:
	.string	"Logical Drive Info:\n"
	.align 8
.LC19:
	.string	"ida/c%dd%d: blksz=%d nr_blks=%d\n"
.LC20:
	.string	"nr_allocs = %d\nnr_frees = %d\n"
	.text
	.globl	ida_proc_get_info
	.type	ida_proc_get_info, @function
ida_proc_get_info:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 736
	mov	QWORD PTR -696[rbp], rdi
	mov	QWORD PTR -704[rbp], rsi
	mov	QWORD PTR -712[rbp], rdx
	mov	DWORD PTR -716[rbp], ecx
	mov	QWORD PTR -728[rbp], r8
	mov	QWORD PTR -736[rbp], r9
	mov	QWORD PTR -600[rbp], 0
	mov	QWORD PTR -592[rbp], 0
	mov	rax, QWORD PTR -736[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -680[rbp], eax
	mov	QWORD PTR -576[rbp], 0
	mov	rax, QWORD PTR -576[rbp]
	add	rax, 4
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -560[rbp], rax
	mov	rdx, QWORD PTR -560[rbp]
	mov	rax, QWORD PTR -568[rbp]
	add	rax, rdx
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -536[rbp]
	add	rax, 64
	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 -584[rbp]
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	add	rax, 56
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -676[rbp], eax
	mov	eax, DWORD PTR -676[rbp]
	mov	QWORD PTR -496[rbp], rax
	mov	QWORD PTR -488[rbp], 0
	mov	rax, QWORD PTR -488[rbp]
	add	rax, 28
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -472[rbp], rax
	mov	rdx, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR -480[rbp]
	add	rax, rdx
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -688[rbp], al
	movsx	eax, BYTE PTR -688[rbp]
	mov	DWORD PTR -672[rbp], eax
	mov	QWORD PTR -456[rbp], 1
	mov	rax, QWORD PTR -456[rbp]
	add	rax, 28
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -440[rbp], rax
	mov	rdx, QWORD PTR -440[rbp]
	mov	rax, QWORD PTR -448[rbp]
	add	rax, rdx
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -687[rbp], al
	movsx	eax, BYTE PTR -687[rbp]
	mov	DWORD PTR -668[rbp], eax
	mov	QWORD PTR -424[rbp], 2
	mov	rax, QWORD PTR -424[rbp]
	add	rax, 28
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -408[rbp], rax
	mov	rdx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -686[rbp], al
	movsx	eax, BYTE PTR -686[rbp]
	mov	DWORD PTR -664[rbp], eax
	mov	QWORD PTR -392[rbp], 3
	mov	rax, QWORD PTR -392[rbp]
	add	rax, 28
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -376[rbp], rax
	mov	rdx, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -384[rbp]
	add	rax, rdx
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -685[rbp], al
	movsx	eax, BYTE PTR -685[rbp]
	mov	DWORD PTR -660[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	add	rax, 32
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -656[rbp], eax
	mov	eax, DWORD PTR -656[rbp]
	cdqe
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	add	rax, 72
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 88
	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	DWORD PTR -652[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 104
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -648[rbp], eax
	mov	eax, DWORD PTR -648[rbp]
	mov	DWORD PTR -644[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 36
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -640[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 40
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -636[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 600
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -632[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 604
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -628[rbp], eax
	mov	r8d, DWORD PTR -672[rbp]
	mov	rdi, QWORD PTR -496[rbp]
	mov	rcx, QWORD PTR -520[rbp]
	mov	rdx, QWORD PTR -544[rbp]
	mov	rax, QWORD PTR -696[rbp]
	sub	rsp, 8
	mov	esi, DWORD PTR -628[rbp]
	push	rsi
	mov	esi, DWORD PTR -632[rbp]
	push	rsi
	mov	esi, DWORD PTR -636[rbp]
	push	rsi
	mov	esi, DWORD PTR -640[rbp]
	push	rsi
	mov	esi, DWORD PTR -644[rbp]
	push	rsi
	mov	esi, DWORD PTR -652[rbp]
	push	rsi
	push	QWORD PTR -312[rbp]
	push	QWORD PTR -344[rbp]
	mov	esi, DWORD PTR -660[rbp]
	push	rsi
	mov	esi, DWORD PTR -664[rbp]
	push	rsi
	mov	esi, DWORD PTR -668[rbp]
	push	rsi
	mov	r9d, r8d
	mov	r8, rdi
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	add	rsp, 96
	mov	DWORD PTR -624[rbp], eax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	add	QWORD PTR -600[rbp], rax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	add	QWORD PTR -592[rbp], rax
	mov	rdx, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR -696[rbp]
	add	rax, rdx
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	lea	rsi, .LC18[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	DWORD PTR -624[rbp], eax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	add	QWORD PTR -600[rbp], rax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	add	QWORD PTR -592[rbp], rax
	mov	DWORD PTR -684[rbp], 0
.L82:
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 36
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -620[rbp], eax
	mov	eax, DWORD PTR -684[rbp]
	cmp	eax, DWORD PTR -620[rbp]
	jge	.L88
	mov	eax, DWORD PTR -684[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 112
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR -696[rbp]
	add	rax, rdx
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -608[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -604[rbp], eax
	mov	edi, DWORD PTR -604[rbp]
	mov	esi, DWORD PTR -608[rbp]
	mov	ecx, DWORD PTR -684[rbp]
	mov	edx, DWORD PTR -680[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	r9d, edi
	mov	r8d, esi
	lea	rsi, .LC19[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	DWORD PTR -624[rbp], eax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	QWORD PTR -600[rbp], rax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	add	QWORD PTR -592[rbp], rax
	add	DWORD PTR -684[rbp], 1
	jmp	.L82
.L88:
	nop
.L84:
	mov	rdx, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR -696[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 612
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -616[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 616
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -612[rbp], eax
	mov	ecx, DWORD PTR -612[rbp]
	mov	edx, DWORD PTR -616[rbp]
	mov	rax, QWORD PTR -144[rbp]
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	DWORD PTR -624[rbp], eax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	QWORD PTR -600[rbp], rax
	mov	eax, DWORD PTR -624[rbp]
	cdqe
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	DWORD PTR [rax], 1
	mov	rdx, QWORD PTR -712[rbp]
	mov	rax, QWORD PTR -696[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -704[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -712[rbp]
	sub	QWORD PTR -592[rbp], rax
	mov	eax, DWORD PTR -716[rbp]
	cdqe
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	cmp	rax, QWORD PTR -88[rbp]
	jle	.L85
	mov	eax, DWORD PTR -716[rbp]
	cdqe
	mov	QWORD PTR -592[rbp], rax
.L85:
	mov	rax, QWORD PTR -592[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	ida_proc_get_info, .-ida_proc_get_info
	.globl	release_io_mem
	.type	release_io_mem, @function
release_io_mem:
.LFB37:
	.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	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 88
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	cmp	QWORD PTR -88[rbp], 0
	je	.L92
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 88
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 96
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR -64[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	release_region
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 88
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 96
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L89
.L92:
	nop
.L89:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	release_io_mem, .-release_io_mem
	.section	.rodata
	.align 8
.LC21:
	.string	"<4>Unable to flush cache on controller %d\n"
	.text
	.globl	cpqarray_remove_one
	.type	cpqarray_remove_one, @function
cpqarray_remove_one:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 848
	mov	DWORD PTR -836[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	BYTE PTR -817[rbp], -62
	mov	QWORD PTR -776[rbp], 0
	lea	rdx, -12[rbp]
	mov	rax, QWORD PTR -776[rbp]
	add	rax, rdx
	mov	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -768[rbp]
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -760[rbp]
	mov	QWORD PTR -752[rbp], rax
	mov	DWORD PTR -812[rbp], 4
	movzx	eax, BYTE PTR -817[rbp]
	mov	ecx, DWORD PTR -812[rbp]
	mov	rdx, QWORD PTR -752[rbp]
	mov	esi, DWORD PTR -836[rbp]
	sub	rsp, 8
	push	0
	mov	r9d, 0
	mov	r8d, 0
	mov	edi, eax
	call	sendcmd
	add	rsp, 16
	mov	DWORD PTR -808[rbp], eax
	cmp	DWORD PTR -808[rbp], 0
	je	.L94
	mov	eax, DWORD PTR -836[rbp]
	mov	esi, eax
	lea	rdi, .LC21[rip]
	mov	eax, 0
	call	printk@PLT
.L94:
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -744[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -744[rbp]
	add	rax, rdx
	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, 104
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -712[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -804[rbp], eax
	mov	eax, DWORD PTR -804[rbp]
	mov	DWORD PTR -800[rbp], eax
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -704[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -704[rbp]
	add	rax, rdx
	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 -688[rbp]
	mov	QWORD PTR -680[rbp], rax
	mov	rdx, QWORD PTR -680[rbp]
	mov	eax, DWORD PTR -800[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	free_irq
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -672[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -672[rbp]
	add	rax, rdx
	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, 72
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -640[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	mov	rdi, rax
	call	iounmap@PLT
	mov	eax, DWORD PTR -836[rbp]
	add	eax, 72
	mov	DWORD PTR -796[rbp], eax
	mov	eax, DWORD PTR -796[rbp]
	mov	DWORD PTR -792[rbp], eax
	mov	QWORD PTR -624[rbp], 0
	mov	rax, QWORD PTR -624[rbp]
	add	rax, 4
	mov	QWORD PTR -616[rbp], rax
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -608[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -608[rbp]
	add	rax, rdx
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rdx, QWORD PTR -584[rbp]
	mov	rax, QWORD PTR -616[rbp]
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -568[rbp]
	mov	QWORD PTR -560[rbp], rax
	mov	rdx, QWORD PTR -560[rbp]
	mov	eax, DWORD PTR -792[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	unregister_blkdev
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -552[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -552[rbp]
	add	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -536[rbp]
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -528[rbp]
	add	rax, 624
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	mov	rdi, rax
	call	del_timer
	mov	QWORD PTR -504[rbp], 0
	mov	rax, QWORD PTR -504[rbp]
	add	rax, 4
	mov	QWORD PTR -496[rbp], rax
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -488[rbp], rax
	lea	rdx, hba[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	rdx, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR -496[rbp]
	add	rax, rdx
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	mov	QWORD PTR -440[rbp], rax
	mov	rdx, QWORD PTR proc_array[rip]
	mov	rax, QWORD PTR -440[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	remove_proc_entry@PLT
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -432[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 48
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -392[rbp], rax
	mov	QWORD PTR -384[rbp], 41984
	mov	rax, QWORD PTR -384[rbp]
	mov	DWORD PTR -788[rbp], eax
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -376[rbp], rax
	lea	rdx, hba[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, 560
	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	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -320[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, rdx
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 568
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -784[rbp], eax
	mov	ecx, DWORD PTR -784[rbp]
	mov	rdx, QWORD PTR -328[rbp]
	mov	esi, DWORD PTR -788[rbp]
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	pci_free_consistent@PLT
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -280[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	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, 576
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	DWORD PTR -816[rbp], 0
.L95:
	cmp	DWORD PTR -816[rbp], 15
	jg	.L102
	mov	eax, DWORD PTR -816[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -152[rbp], rax
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -144[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	lea	rdx, ida_gendisk[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, 80
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -780[rbp], eax
	mov	eax, DWORD PTR -780[rbp]
	and	eax, 16
	test	eax, eax
	je	.L98
	mov	eax, DWORD PTR -816[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -96[rbp], rax
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -88[rbp], rax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	lea	rdx, ida_gendisk[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]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	del_gendisk
.L98:
	mov	eax, DWORD PTR -816[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 7
	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, ida_gendisk[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	put_disk@PLT
	add	DWORD PTR -816[rbp], 1
	jmp	.L95
.L102:
	nop
.L97:
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -224[rbp], rax
	lea	rdx, hba[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]
	add	rax, 584
	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	rdi, rax
	call	blk_cleanup_queue
	mov	eax, DWORD PTR -836[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -176[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	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	rdi, rax
	call	release_io_mem
	mov	eax, DWORD PTR -836[rbp]
	mov	edi, eax
	call	free_hba
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L100
	call	__stack_chk_fail@PLT
.L100:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	cpqarray_remove_one, .-cpqarray_remove_one
	.section	.rodata
	.align 8
.LC22:
	.string	"<3>cpqarray: Unable to remove device \n"
	.align 8
.LC23:
	.string	"<3>cpqarray: controller %d appears to havealready been removed \n"
	.text
	.globl	cpqarray_remove_one_pci
	.type	cpqarray_remove_one_pci, @function
cpqarray_remove_one_pci:
.LFB39:
	.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	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	pci_get_drvdata
	mov	QWORD PTR -104[rbp], rax
	mov	QWORD PTR -96[rbp], 0
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	cmp	rax, QWORD PTR -88[rbp]
	jne	.L104
	lea	rdi, .LC22[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L103
.L104:
	mov	rax, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	pci_get_drvdata
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -108[rbp], eax
	mov	QWORD PTR -56[rbp], 0
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	eax, DWORD PTR -108[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -40[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	jne	.L106
	mov	eax, DWORD PTR -108[rbp]
	mov	esi, eax
	lea	rdi, .LC23[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L103
.L106:
	mov	QWORD PTR -8[rbp], 0
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -120[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pci_set_drvdata
	mov	eax, DWORD PTR -108[rbp]
	mov	edi, eax
	call	cpqarray_remove_one
	nop
.L103:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	cpqarray_remove_one_pci, .-cpqarray_remove_one_pci
	.globl	cpqarray_remove_one_eisa
	.type	cpqarray_remove_one_eisa, @function
cpqarray_remove_one_eisa:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, hba[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
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	jne	.L108
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, eax
	lea	rdi, .LC23[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L107
.L108:
	mov	eax, DWORD PTR -52[rbp]
	mov	edi, eax
	call	cpqarray_remove_one
	nop
.L107:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	cpqarray_remove_one_eisa, .-cpqarray_remove_one_eisa
	.section	.rodata
	.align 8
.LC24:
	.string	"<3>cpqarray: Unable to get irq %d for %s\n"
	.align 8
.LC25:
	.string	"<6>cpqarray: Finding drives on %s"
.LC26:
	.string	"ida/c%dd%d"
.LC27:
	.string	"<3>cpqarray: out of memory"
	.text
	.globl	cpqarray_register_ctlr
	.type	cpqarray_register_ctlr, @function
cpqarray_register_ctlr:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 2536
	.cfi_offset 3, -24
	mov	DWORD PTR -2532[rbp], edi
	mov	QWORD PTR -2544[rbp], rsi
	mov	eax, DWORD PTR -2532[rbp]
	add	eax, 72
	mov	DWORD PTR -2512[rbp], eax
	mov	eax, DWORD PTR -2512[rbp]
	mov	DWORD PTR -2508[rbp], eax
	mov	QWORD PTR -2424[rbp], 0
	mov	rax, QWORD PTR -2424[rbp]
	add	rax, 4
	mov	QWORD PTR -2416[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2408[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2408[rbp]
	add	rax, rdx
	mov	QWORD PTR -2400[rbp], rax
	mov	rax, QWORD PTR -2400[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2392[rbp], rax
	mov	rax, QWORD PTR -2392[rbp]
	mov	QWORD PTR -2384[rbp], rax
	mov	rdx, QWORD PTR -2384[rbp]
	mov	rax, QWORD PTR -2416[rbp]
	add	rax, rdx
	mov	QWORD PTR -2376[rbp], rax
	mov	rax, QWORD PTR -2376[rbp]
	mov	QWORD PTR -2368[rbp], rax
	mov	rax, QWORD PTR -2368[rbp]
	mov	QWORD PTR -2360[rbp], rax
	mov	rdx, QWORD PTR -2360[rbp]
	mov	eax, DWORD PTR -2508[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	register_blkdev
	mov	DWORD PTR -2504[rbp], eax
	cmp	DWORD PTR -2504[rbp], 0
	jne	.L138
	mov	QWORD PTR -2352[rbp], 512
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2344[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2344[rbp]
	add	rax, rdx
	mov	QWORD PTR -2336[rbp], rax
	mov	rax, QWORD PTR -2336[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2328[rbp], rax
	mov	rax, QWORD PTR -2328[rbp]
	mov	QWORD PTR -2320[rbp], rax
	mov	rdx, QWORD PTR -2320[rbp]
	mov	rax, QWORD PTR -2352[rbp]
	add	rax, rdx
	mov	QWORD PTR -2312[rbp], rax
	mov	rax, QWORD PTR -2312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2304[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2296[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2296[rbp]
	add	rax, rdx
	mov	QWORD PTR -2288[rbp], rax
	mov	rax, QWORD PTR -2288[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2280[rbp], rax
	mov	rax, QWORD PTR -2280[rbp]
	mov	rdx, QWORD PTR -2304[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	rdx
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2272[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2272[rbp]
	add	rax, rdx
	mov	QWORD PTR -2264[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2256[rbp], rax
	mov	rax, QWORD PTR -2256[rbp]
	mov	QWORD PTR -2248[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	add	rax, 104
	mov	QWORD PTR -2240[rbp], rax
	mov	rax, QWORD PTR -2240[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2500[rbp], eax
	mov	eax, DWORD PTR -2500[rbp]
	mov	DWORD PTR -2496[rbp], eax
	lea	rax, do_ida_intr[rip]
	mov	QWORD PTR -2232[rbp], rax
	mov	QWORD PTR -2224[rbp], 0
	mov	rax, QWORD PTR -2224[rbp]
	add	rax, 4
	mov	QWORD PTR -2216[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2208[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2208[rbp]
	add	rax, rdx
	mov	QWORD PTR -2200[rbp], rax
	mov	rax, QWORD PTR -2200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2192[rbp], rax
	mov	rax, QWORD PTR -2192[rbp]
	mov	QWORD PTR -2184[rbp], rax
	mov	rdx, QWORD PTR -2184[rbp]
	mov	rax, QWORD PTR -2216[rbp]
	add	rax, rdx
	mov	QWORD PTR -2176[rbp], rax
	mov	rax, QWORD PTR -2176[rbp]
	mov	QWORD PTR -2168[rbp], rax
	mov	rax, QWORD PTR -2168[rbp]
	mov	QWORD PTR -2160[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2152[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2152[rbp]
	add	rax, rdx
	mov	QWORD PTR -2144[rbp], rax
	mov	rax, QWORD PTR -2144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2136[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -2128[rbp], rax
	mov	rcx, QWORD PTR -2128[rbp]
	mov	rdx, QWORD PTR -2160[rbp]
	mov	rsi, QWORD PTR -2232[rbp]
	mov	eax, DWORD PTR -2496[rbp]
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 160
	mov	edi, eax
	call	request_irq
	mov	DWORD PTR -2492[rbp], eax
	cmp	DWORD PTR -2492[rbp], 0
	je	.L113
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -224[rbp], rax
	lea	rdx, hba[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]
	add	rax, 104
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2436[rbp], eax
	mov	QWORD PTR -184[rbp], 0
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 4
	mov	QWORD PTR -176[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -168[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR -2436[rbp]
	mov	esi, eax
	lea	rdi, .LC24[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L114
.L113:
	mov	DWORD PTR -2516[rbp], 0
.L115:
	cmp	DWORD PTR -2516[rbp], 15
	jg	.L139
	mov	eax, DWORD PTR -2516[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -448[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -440[rbp], rax
	mov	rdx, QWORD PTR -440[rbp]
	mov	rax, QWORD PTR -448[rbp]
	add	rax, rdx
	mov	QWORD PTR -432[rbp], rax
	lea	rdx, ida_gendisk[rip]
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	mov	QWORD PTR -424[rbp], rax
	mov	DWORD PTR -2452[rbp], 16
	mov	rbx, QWORD PTR -424[rbp]
	mov	eax, DWORD PTR -2452[rbp]
	mov	edi, eax
	call	alloc_disk
	mov	QWORD PTR [rbx], rax
	mov	eax, DWORD PTR -2516[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -416[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -408[rbp], rax
	mov	rdx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	QWORD PTR -400[rbp], rax
	lea	rdx, ida_gendisk[rip]
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -384[rbp], rax
	cmp	QWORD PTR -384[rbp], 0
	je	.L140
	add	DWORD PTR -2516[rbp], 1
	jmp	.L115
.L139:
	nop
.L117:
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2120[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2120[rbp]
	add	rax, rdx
	mov	QWORD PTR -2112[rbp], rax
	mov	rax, QWORD PTR -2112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2104[rbp], rax
	mov	rax, QWORD PTR -2104[rbp]
	mov	QWORD PTR -2096[rbp], rax
	mov	rax, QWORD PTR -2096[rbp]
	add	rax, 48
	mov	QWORD PTR -2088[rbp], rax
	mov	rax, QWORD PTR -2088[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2080[rbp], rax
	mov	QWORD PTR -2072[rbp], 41984
	mov	rax, QWORD PTR -2072[rbp]
	mov	DWORD PTR -2488[rbp], eax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2064[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2064[rbp]
	add	rax, rdx
	mov	QWORD PTR -2056[rbp], rax
	mov	rax, QWORD PTR -2056[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2048[rbp], rax
	mov	rax, QWORD PTR -2048[rbp]
	mov	QWORD PTR -2040[rbp], rax
	mov	rax, QWORD PTR -2040[rbp]
	add	rax, 568
	mov	QWORD PTR -2032[rbp], rax
	mov	rax, QWORD PTR -2032[rbp]
	mov	QWORD PTR -2024[rbp], rax
	mov	rdx, QWORD PTR -2024[rbp]
	mov	ecx, DWORD PTR -2488[rbp]
	mov	rax, QWORD PTR -2080[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pci_alloc_consistent@PLT
	mov	QWORD PTR -2016[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -2008[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -2008[rbp]
	add	rax, rdx
	mov	QWORD PTR -2000[rbp], rax
	mov	rax, QWORD PTR -2000[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1992[rbp], rax
	mov	rax, QWORD PTR -1992[rbp]
	mov	QWORD PTR -1984[rbp], rax
	mov	rax, QWORD PTR -1984[rbp]
	add	rax, 560
	mov	QWORD PTR -1976[rbp], rax
	mov	rax, QWORD PTR -1976[rbp]
	mov	rdx, QWORD PTR -2016[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -1968[rbp], 32
	mov	rax, QWORD PTR -1968[rbp]
	mov	DWORD PTR -2484[rbp], eax
	mov	eax, DWORD PTR -2484[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -1960[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1952[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1952[rbp]
	add	rax, rdx
	mov	QWORD PTR -1944[rbp], rax
	mov	rax, QWORD PTR -1944[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1936[rbp], rax
	mov	rax, QWORD PTR -1936[rbp]
	mov	QWORD PTR -1928[rbp], rax
	mov	rax, QWORD PTR -1928[rbp]
	add	rax, 576
	mov	QWORD PTR -1920[rbp], rax
	mov	rax, QWORD PTR -1920[rbp]
	mov	rdx, QWORD PTR -1960[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1912[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1912[rbp]
	add	rax, rdx
	mov	QWORD PTR -1904[rbp], rax
	mov	rax, QWORD PTR -1904[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1896[rbp], rax
	mov	rax, QWORD PTR -1896[rbp]
	mov	QWORD PTR -1888[rbp], rax
	mov	rax, QWORD PTR -1888[rbp]
	add	rax, 576
	mov	QWORD PTR -1880[rbp], rax
	mov	rax, QWORD PTR -1880[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1872[rbp], rax
	cmp	QWORD PTR -1872[rbp], 0
	je	.L141
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1864[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1864[rbp]
	add	rax, rdx
	mov	QWORD PTR -1856[rbp], rax
	mov	rax, QWORD PTR -1856[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1848[rbp], rax
	mov	rax, QWORD PTR -1848[rbp]
	mov	QWORD PTR -1840[rbp], rax
	mov	rax, QWORD PTR -1840[rbp]
	add	rax, 560
	mov	QWORD PTR -1832[rbp], rax
	mov	rax, QWORD PTR -1832[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1824[rbp], rax
	cmp	QWORD PTR -1824[rbp], 0
	je	.L142
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1816[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1816[rbp]
	add	rax, rdx
	mov	QWORD PTR -1808[rbp], rax
	mov	rax, QWORD PTR -1808[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1800[rbp], rax
	mov	rax, QWORD PTR -1800[rbp]
	mov	QWORD PTR -1792[rbp], rax
	mov	rax, QWORD PTR -1792[rbp]
	add	rax, 560
	mov	QWORD PTR -1784[rbp], rax
	mov	rax, QWORD PTR -1784[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1776[rbp], rax
	mov	rax, QWORD PTR -1776[rbp]
	mov	QWORD PTR -1768[rbp], rax
	mov	QWORD PTR -1760[rbp], 41984
	mov	rax, QWORD PTR -1760[rbp]
	mov	DWORD PTR -2480[rbp], eax
	mov	edx, DWORD PTR -2480[rbp]
	mov	rax, QWORD PTR -1768[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1752[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1752[rbp]
	add	rax, rdx
	mov	QWORD PTR -1744[rbp], rax
	mov	rax, QWORD PTR -1744[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1736[rbp], rax
	mov	rax, QWORD PTR -1736[rbp]
	mov	QWORD PTR -1728[rbp], rax
	mov	rax, QWORD PTR -1728[rbp]
	add	rax, 576
	mov	QWORD PTR -1720[rbp], rax
	mov	rax, QWORD PTR -1720[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1712[rbp], rax
	mov	rax, QWORD PTR -1712[rbp]
	mov	QWORD PTR -1704[rbp], rax
	mov	QWORD PTR -1696[rbp], 32
	mov	rax, QWORD PTR -1696[rbp]
	mov	DWORD PTR -2476[rbp], eax
	mov	edx, DWORD PTR -2476[rbp]
	mov	rax, QWORD PTR -1704[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	QWORD PTR -1688[rbp], 0
	mov	rax, QWORD PTR -1688[rbp]
	add	rax, 4
	mov	QWORD PTR -1680[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1672[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1672[rbp]
	add	rax, rdx
	mov	QWORD PTR -1664[rbp], rax
	mov	rax, QWORD PTR -1664[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1656[rbp], rax
	mov	rax, QWORD PTR -1656[rbp]
	mov	QWORD PTR -1648[rbp], rax
	mov	rdx, QWORD PTR -1648[rbp]
	mov	rax, QWORD PTR -1680[rbp]
	add	rax, rdx
	mov	QWORD PTR -1640[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1632[rbp], rax
	mov	rax, QWORD PTR -1632[rbp]
	mov	rsi, rax
	lea	rdi, .LC25[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1624[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1624[rbp]
	add	rax, rdx
	mov	QWORD PTR -1616[rbp], rax
	mov	rax, QWORD PTR -1616[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1608[rbp], rax
	mov	rax, QWORD PTR -1608[rbp]
	mov	QWORD PTR -1600[rbp], rax
	mov	rax, QWORD PTR -1600[rbp]
	add	rax, 592
	mov	QWORD PTR -1592[rbp], rax
	mov	rax, QWORD PTR -1592[rbp]
	mov	QWORD PTR -1584[rbp], rax
	mov	rax, QWORD PTR -1584[rbp]
	mov	rdi, rax
	call	spin_lock_init
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1576[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1576[rbp]
	add	rax, rdx
	mov	QWORD PTR -1568[rbp], rax
	mov	rax, QWORD PTR -1568[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1560[rbp], rax
	mov	rax, QWORD PTR -1560[rbp]
	mov	QWORD PTR -1552[rbp], rax
	mov	rax, QWORD PTR -1552[rbp]
	add	rax, 592
	mov	QWORD PTR -1544[rbp], rax
	mov	rax, QWORD PTR -1544[rbp]
	mov	QWORD PTR -1536[rbp], rax
	mov	rax, QWORD PTR -1536[rbp]
	mov	rsi, rax
	lea	rdi, do_ida_request[rip]
	call	blk_init_queue
	mov	QWORD PTR -1528[rbp], rax
	cmp	QWORD PTR -1528[rbp], 0
	je	.L143
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1520[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1520[rbp]
	add	rax, rdx
	mov	QWORD PTR -1512[rbp], rax
	mov	rax, QWORD PTR -1512[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1504[rbp], rax
	mov	rax, QWORD PTR -1504[rbp]
	mov	QWORD PTR -1496[rbp], rax
	mov	rax, QWORD PTR -1496[rbp]
	add	rax, 584
	mov	QWORD PTR -1488[rbp], rax
	mov	rax, QWORD PTR -1488[rbp]
	mov	rdx, QWORD PTR -1528[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1528[rbp]
	mov	QWORD PTR -1480[rbp], rax
	mov	rax, QWORD PTR -1480[rbp]
	add	rax, 48
	mov	QWORD PTR -1472[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1464[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1464[rbp]
	add	rax, rdx
	mov	QWORD PTR -1456[rbp], rax
	mov	rax, QWORD PTR -1456[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1448[rbp], rax
	mov	rax, QWORD PTR -1472[rbp]
	mov	rdx, QWORD PTR -1448[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -2532[rbp]
	mov	edi, eax
	call	getgeometry
	mov	eax, DWORD PTR -2532[rbp]
	mov	edi, eax
	call	start_fwbk
	mov	eax, DWORD PTR -2532[rbp]
	mov	edi, eax
	call	ida_procinit
	cmp	QWORD PTR -2544[rbp], 0
	je	.L124
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1440[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1440[rbp]
	add	rax, rdx
	mov	QWORD PTR -1432[rbp], rax
	mov	rax, QWORD PTR -1432[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1424[rbp], rax
	mov	rax, QWORD PTR -1424[rbp]
	mov	QWORD PTR -1416[rbp], rax
	mov	rax, QWORD PTR -1416[rbp]
	add	rax, 48
	mov	QWORD PTR -1408[rbp], rax
	mov	rax, QWORD PTR -1408[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1400[rbp], rax
	mov	rax, QWORD PTR -1400[rbp]
	mov	QWORD PTR -1392[rbp], rax
	mov	rax, QWORD PTR -1392[rbp]
	add	rax, 24
	mov	QWORD PTR -1384[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1376[rbp], rax
	mov	rdx, QWORD PTR -1376[rbp]
	mov	rax, QWORD PTR -1528[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	blk_queue_bounce_limit@PLT
.L124:
	mov	rax, QWORD PTR -1528[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	blk_queue_max_hw_segments@PLT
	mov	rax, QWORD PTR -1528[rbp]
	mov	esi, 32
	mov	rdi, rax
	call	blk_queue_max_phys_segments@PLT
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1368[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1368[rbp]
	add	rax, rdx
	mov	QWORD PTR -1360[rbp], rax
	mov	rax, QWORD PTR -1360[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1352[rbp], rax
	mov	rax, QWORD PTR -1352[rbp]
	mov	QWORD PTR -1344[rbp], rax
	mov	rax, QWORD PTR -1344[rbp]
	add	rax, 624
	mov	QWORD PTR -1336[rbp], rax
	mov	rax, QWORD PTR -1336[rbp]
	mov	QWORD PTR -1328[rbp], rax
	mov	rax, QWORD PTR -1328[rbp]
	mov	rdi, rax
	call	init_timer
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1320[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1320[rbp]
	add	rax, rdx
	mov	QWORD PTR -1312[rbp], rax
	mov	rax, QWORD PTR -1312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1304[rbp], rax
	mov	rax, QWORD PTR -1304[rbp]
	mov	QWORD PTR -1296[rbp], rax
	mov	rax, QWORD PTR -1296[rbp]
	add	rax, 624
	mov	QWORD PTR -1288[rbp], rax
	mov	rdx, QWORD PTR jiffies[rip]
	mov	rax, QWORD PTR -1288[rbp]
	add	rdx, 500
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -1280[rbp], 640
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1272[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1272[rbp]
	add	rax, rdx
	mov	QWORD PTR -1264[rbp], rax
	mov	rax, QWORD PTR -1264[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1256[rbp], rax
	mov	rax, QWORD PTR -1256[rbp]
	mov	QWORD PTR -1248[rbp], rax
	mov	rdx, QWORD PTR -1248[rbp]
	mov	rax, QWORD PTR -1280[rbp]
	add	rax, rdx
	mov	QWORD PTR -1240[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1232[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1232[rbp]
	add	rax, rdx
	mov	QWORD PTR -1224[rbp], rax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1216[rbp], rax
	mov	rax, QWORD PTR -1240[rbp]
	mov	rdx, QWORD PTR -1216[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -1208[rbp], 632
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1200[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, rdx
	mov	QWORD PTR -1192[rbp], rax
	mov	rax, QWORD PTR -1192[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1184[rbp], rax
	mov	rax, QWORD PTR -1184[rbp]
	mov	QWORD PTR -1176[rbp], rax
	mov	rdx, QWORD PTR -1176[rbp]
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, rdx
	mov	QWORD PTR -1168[rbp], rax
	mov	rax, QWORD PTR -1168[rbp]
	lea	rdx, ida_timer[rip]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1160[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1160[rbp]
	add	rax, rdx
	mov	QWORD PTR -1152[rbp], rax
	mov	rax, QWORD PTR -1152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1144[rbp], rax
	mov	rax, QWORD PTR -1144[rbp]
	mov	QWORD PTR -1136[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 624
	mov	QWORD PTR -1128[rbp], rax
	mov	rax, QWORD PTR -1128[rbp]
	mov	QWORD PTR -1120[rbp], rax
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdi, rax
	call	add_timer
	mov	QWORD PTR -1112[rbp], 512
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1104[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1104[rbp]
	add	rax, rdx
	mov	QWORD PTR -1096[rbp], rax
	mov	rax, QWORD PTR -1096[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	mov	QWORD PTR -1080[rbp], rax
	mov	rdx, QWORD PTR -1080[rbp]
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, rdx
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1072[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1064[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1056[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1056[rbp]
	add	rax, rdx
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1040[rbp], rax
	mov	rax, QWORD PTR -1040[rbp]
	mov	rdx, QWORD PTR -1064[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -2516[rbp], 0
.L125:
	cmp	DWORD PTR -2516[rbp], 15
	jg	.L144
	mov	eax, DWORD PTR -2516[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1032[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -1024[rbp], rax
	mov	rdx, QWORD PTR -1024[rbp]
	mov	rax, QWORD PTR -1032[rbp]
	add	rax, rdx
	mov	QWORD PTR -1016[rbp], rax
	lea	rdx, ida_gendisk[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	eax, DWORD PTR -2516[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -992[rbp], rax
	mov	rax, QWORD PTR -992[rbp]
	add	rax, 112
	mov	QWORD PTR -984[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -976[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -976[rbp]
	add	rax, rdx
	mov	QWORD PTR -968[rbp], rax
	mov	rax, QWORD PTR -968[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -960[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	mov	QWORD PTR -952[rbp], rax
	mov	rdx, QWORD PTR -952[rbp]
	mov	rax, QWORD PTR -984[rbp]
	add	rax, rdx
	mov	QWORD PTR -944[rbp], rax
	mov	rax, QWORD PTR -944[rbp]
	mov	QWORD PTR -936[rbp], rax
	mov	QWORD PTR -928[rbp], 0
	mov	rax, QWORD PTR -928[rbp]
	add	rax, 12
	mov	QWORD PTR -920[rbp], rax
	mov	rax, QWORD PTR -1000[rbp]
	mov	QWORD PTR -912[rbp], rax
	mov	rdx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -920[rbp]
	add	rax, rdx
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	mov	QWORD PTR -896[rbp], rax
	mov	ecx, DWORD PTR -2516[rbp]
	mov	edx, DWORD PTR -2532[rbp]
	mov	rax, QWORD PTR -896[rbp]
	lea	rsi, .LC26[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	eax, DWORD PTR -2532[rbp]
	lea	edx, 72[rax]
	mov	rax, QWORD PTR -1000[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1000[rbp]
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -888[rbp]
	add	rax, 4
	mov	QWORD PTR -880[rbp], rax
	mov	rax, QWORD PTR -880[rbp]
	mov	edx, DWORD PTR -2516[rbp]
	sal	edx, 4
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1000[rbp]
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	add	rax, 48
	mov	QWORD PTR -864[rbp], rax
	mov	rax, QWORD PTR -864[rbp]
	lea	rdx, ida_fops[rip]
	mov	QWORD PTR [rax], rdx
	cmp	DWORD PTR -2516[rbp], 0
	je	.L128
	mov	rax, QWORD PTR -936[rbp]
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -856[rbp]
	add	rax, 4
	mov	QWORD PTR -848[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2472[rbp], eax
	cmp	DWORD PTR -2472[rbp], 0
	je	.L145
.L128:
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -840[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -840[rbp]
	add	rax, rdx
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -832[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -824[rbp]
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 584
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -936[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2468[rbp], eax
	mov	eax, DWORD PTR -2468[rbp]
	mov	WORD PTR -2518[rbp], ax
	movzx	edx, WORD PTR -2518[rbp]
	mov	rax, QWORD PTR -800[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	blk_queue_hardsect_size
	mov	rax, QWORD PTR -936[rbp]
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 4
	mov	QWORD PTR -784[rbp], rax
	mov	rax, QWORD PTR -784[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2464[rbp], eax
	mov	eax, DWORD PTR -2464[rbp]
	mov	QWORD PTR -776[rbp], rax
	mov	rdx, QWORD PTR -776[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	set_capacity
	mov	rax, QWORD PTR -1000[rbp]
	mov	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -768[rbp]
	add	rax, 56
	mov	QWORD PTR -760[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -752[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -752[rbp]
	add	rax, rdx
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	add	rax, 584
	mov	QWORD PTR -720[rbp], rax
	mov	rdx, QWORD PTR -720[rbp]
	mov	rax, QWORD PTR -760[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1000[rbp]
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -712[rbp]
	add	rax, 64
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -704[rbp]
	mov	rdx, QWORD PTR -936[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1000[rbp]
	mov	rdi, rax
	call	add_disk
	jmp	.L129
.L145:
	nop
.L129:
	add	DWORD PTR -2516[rbp], 1
	jmp	.L125
.L144:
	nop
.L127:
	mov	eax, DWORD PTR -2532[rbp]
	jmp	.L130
.L141:
	nop
	jmp	.L121
.L142:
	nop
	jmp	.L121
.L143:
	nop
.L121:
	mov	eax, DWORD PTR -2532[rbp]
	mov	DWORD PTR nr_ctlr[rip], eax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -696[rbp], rax
	lea	rdx, hba[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, 576
	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]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -640[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -640[rbp]
	add	rax, rdx
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	mov	QWORD PTR -616[rbp], rax
	mov	rax, QWORD PTR -616[rbp]
	add	rax, 560
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -608[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L146
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -600[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -600[rbp]
	add	rax, rdx
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	add	rax, 48
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -568[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -560[rbp], rax
	mov	QWORD PTR -552[rbp], 41984
	mov	rax, QWORD PTR -552[rbp]
	mov	DWORD PTR -2460[rbp], eax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -544[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -544[rbp]
	add	rax, rdx
	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 -528[rbp]
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	add	rax, 560
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -496[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -488[rbp], rax
	lea	rdx, hba[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, 568
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2456[rbp], eax
	mov	ecx, DWORD PTR -2456[rbp]
	mov	rdx, QWORD PTR -496[rbp]
	mov	esi, DWORD PTR -2460[rbp]
	mov	rax, QWORD PTR -560[rbp]
	mov	rdi, rax
	call	pci_free_consistent@PLT
	jmp	.L131
.L140:
	nop
	jmp	.L131
.L146:
	nop
.L119:
.L131:
	mov	eax, DWORD PTR -2516[rbp]
	mov	DWORD PTR -2448[rbp], eax
	sub	DWORD PTR -2516[rbp], 1
	cmp	DWORD PTR -2448[rbp], 0
	je	.L147
	mov	eax, DWORD PTR -2516[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -376[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -368[rbp], rax
	mov	rdx, QWORD PTR -368[rbp]
	mov	rax, QWORD PTR -376[rbp]
	add	rax, rdx
	mov	QWORD PTR -360[rbp], rax
	lea	rdx, ida_gendisk[rip]
	mov	rax, QWORD PTR -360[rbp]
	add	rax, rdx
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	rdi, rax
	call	put_disk@PLT
	mov	eax, DWORD PTR -2516[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -336[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -328[rbp], rax
	mov	rdx, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR -336[rbp]
	add	rax, rdx
	mov	QWORD PTR -320[rbp], rax
	lea	rdx, ida_gendisk[rip]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, rdx
	mov	QWORD PTR -312[rbp], rax
	mov	QWORD PTR -304[rbp], 0
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR -304[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L131
.L147:
	nop
.L133:
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -296[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 104
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2444[rbp], eax
	mov	eax, DWORD PTR -2444[rbp]
	mov	DWORD PTR -2440[rbp], eax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -256[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -256[rbp]
	add	rax, rdx
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -232[rbp]
	mov	eax, DWORD PTR -2440[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	free_irq
.L114:
	mov	eax, DWORD PTR -2532[rbp]
	add	eax, 72
	mov	DWORD PTR -2432[rbp], eax
	mov	eax, DWORD PTR -2432[rbp]
	mov	DWORD PTR -2428[rbp], eax
	mov	QWORD PTR -120[rbp], 0
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 4
	mov	QWORD PTR -112[rbp], rax
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -104[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	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	rdx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR -2428[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	unregister_blkdev
	jmp	.L112
.L138:
	nop
.L112:
	cmp	QWORD PTR -2544[rbp], 0
	je	.L134
	mov	QWORD PTR -48[rbp], 0
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -2544[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pci_set_drvdata
.L134:
	mov	eax, DWORD PTR -2532[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -40[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	release_io_mem
	mov	eax, DWORD PTR -2532[rbp]
	mov	edi, eax
	call	free_hba
	lea	rdi, .LC27[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -1
.L130:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	cpqarray_register_ctlr, .-cpqarray_register_ctlr
	.section	.rodata
	.align 8
.LC28:
	.string	"<7>cpqarray: Device 0x%x has been found at bus %d dev %d func %d\n"
.LC29:
	.string	"ida%d"
	.text
	.globl	cpqarray_init_one
	.type	cpqarray_init_one, @function
cpqarray_init_one:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 336
	mov	QWORD PTR -328[rbp], rdi
	mov	QWORD PTR -336[rbp], rsi
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 14
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -310[rbp], ax
	movzx	eax, WORD PTR -310[rbp]
	mov	DWORD PTR -308[rbp], eax
	mov	rax, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -311[rbp], al
	movzx	eax, BYTE PTR -311[rbp]
	mov	DWORD PTR -304[rbp], eax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 8
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -300[rbp], eax
	mov	eax, DWORD PTR -300[rbp]
	shr	eax, 3
	mov	DWORD PTR -296[rbp], eax
	mov	eax, DWORD PTR -296[rbp]
	and	eax, 31
	mov	DWORD PTR -292[rbp], eax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 8
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -288[rbp], eax
	mov	eax, DWORD PTR -288[rbp]
	and	eax, 7
	mov	DWORD PTR -284[rbp], eax
	mov	esi, DWORD PTR -284[rbp]
	mov	ecx, DWORD PTR -292[rbp]
	mov	edx, DWORD PTR -304[rbp]
	mov	eax, DWORD PTR -308[rbp]
	mov	r8d, esi
	mov	esi, eax
	lea	rdi, .LC28[rip]
	mov	eax, 0
	call	printk@PLT
	call	alloc_cpqarray_hba
	mov	DWORD PTR -280[rbp], eax
	cmp	DWORD PTR -280[rbp], 0
	jns	.L149
	mov	eax, -1
	jmp	.L150
.L149:
	mov	eax, DWORD PTR -280[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -208[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	DWORD PTR -276[rbp], 664
	mov	edx, DWORD PTR -276[rbp]
	mov	rax, QWORD PTR -184[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	QWORD PTR -176[rbp], 0
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 4
	mov	QWORD PTR -168[rbp], rax
	mov	eax, DWORD PTR -280[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -160[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	edx, DWORD PTR -280[rbp]
	mov	rax, QWORD PTR -120[rbp]
	lea	rsi, .LC29[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	eax, DWORD PTR -280[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -112[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR -280[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -280[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -88[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pci_set_drvdata
	mov	eax, DWORD PTR -280[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -56[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rdx, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	cpqarray_pci_init
	mov	DWORD PTR -272[rbp], eax
	cmp	DWORD PTR -272[rbp], 0
	je	.L151
	mov	QWORD PTR -32[rbp], 0
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -328[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pci_set_drvdata
	mov	eax, DWORD PTR -280[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -24[rbp]
	add	rax, rdx
	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	rdi, rax
	call	release_io_mem
	mov	eax, DWORD PTR -280[rbp]
	mov	edi, eax
	call	free_hba
	mov	eax, -1
	jmp	.L150
.L151:
	mov	rdx, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR -280[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	cpqarray_register_ctlr
	mov	DWORD PTR -268[rbp], eax
	mov	eax, DWORD PTR -268[rbp]
.L150:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	cpqarray_init_one, .-cpqarray_init_one
	.globl	cpqarray_pci_driver
	.section	.data.rel.local
	.align 32
	.type	cpqarray_pci_driver, @object
	.size	cpqarray_pci_driver, 64
cpqarray_pci_driver:
	.quad	.LC16
	.quad	cpqarray_pci_device_id
	.quad	cpqarray_init_one
	.quad	cpqarray_remove_one_pci
	.quad	0
	.quad	0
	.quad	0
	.quad	0
	.section	.rodata
	.align 8
.LC30:
	.string	"Compaq SMART2 Driver (v 2.6.0)\n"
	.text
	.globl	cpqarray_init
	.type	cpqarray_init, @function
cpqarray_init:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -60[rbp], 0
	mov	DWORD PTR -52[rbp], 0
	lea	rdi, .LC30[rip]
	mov	eax, 0
	call	printk@PLT
	lea	rdi, cpqarray_pci_driver[rip]
	call	pci_register_driver
	mov	DWORD PTR -52[rbp], eax
	cmp	DWORD PTR -52[rbp], 0
	je	.L153
	mov	eax, DWORD PTR -52[rbp]
	jmp	.L154
.L153:
	call	cpqarray_eisa_detect
	mov	DWORD PTR -56[rbp], 0
.L155:
	cmp	DWORD PTR -56[rbp], 7
	jg	.L160
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -56[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, hba[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
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	je	.L158
	add	DWORD PTR -60[rbp], 1
.L158:
	add	DWORD PTR -56[rbp], 1
	jmp	.L155
.L160:
	nop
.L157:
	mov	eax, DWORD PTR -60[rbp]
.L154:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	cpqarray_init, .-cpqarray_init
	.section	.rodata
.LC31:
	.string	"<3>cpqarray: out of memory.\n"
	.align 8
.LC32:
	.string	"<4>cpqarray: This driver supports a maximum of 8 controllers.\n"
	.text
	.globl	alloc_cpqarray_hba
	.type	alloc_cpqarray_hba, @function
alloc_cpqarray_hba:
.LFB44:
	.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	DWORD PTR -128[rbp], 0
.L162:
	cmp	DWORD PTR -128[rbp], 7
	jg	.L169
	mov	QWORD PTR -120[rbp], 0
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	eax, DWORD PTR -128[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -104[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	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]
	cmp	rax, QWORD PTR -112[rbp]
	jne	.L165
	mov	DWORD PTR -124[rbp], 664
	mov	eax, DWORD PTR -124[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -72[rbp], rax
	mov	eax, DWORD PTR -128[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -64[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -128[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, hba[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
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	jne	.L166
	lea	rdi, .LC31[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -1
	jmp	.L167
.L166:
	mov	eax, DWORD PTR -128[rbp]
	jmp	.L167
.L165:
	add	DWORD PTR -128[rbp], 1
	jmp	.L162
.L169:
	nop
.L164:
	lea	rdi, .LC32[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -1
.L167:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	alloc_cpqarray_hba, .-alloc_cpqarray_hba
	.globl	free_hba
	.type	free_hba, @function
free_hba:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	DWORD PTR -68[rbp], edi
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -56[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, DWORD PTR -68[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, hba[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
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	free_hba, .-free_hba
	.section	.rodata
	.align 8
.LC33:
	.string	"<3>cpqarray: Unable to Enable PCI device\n"
	.align 8
.LC34:
	.string	"<3>cpqarray: Unable to set DMA mask\n"
	.align 8
.LC35:
	.string	"<4>cpqarray: controller appears to be disabled\n"
	.align 8
.LC36:
	.string	"<4>cpqarray I/O memory range already in use addr %lx length = %ld\n"
	.align 8
.LC37:
	.string	"<4>cpqarray: Sorry, I don't know how to access the SMART Array controller %08lx\n"
	.text
	.globl	cpqarray_pci_init
	.type	cpqarray_pci_init, @function
cpqarray_pci_init:
.LFB46:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 1048
	.cfi_offset 3, -24
	mov	QWORD PTR -1048[rbp], rdi
	mov	QWORD PTR -1056[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -976[rbp], rax
	mov	rax, QWORD PTR -976[rbp]
	add	rax, 48
	mov	QWORD PTR -968[rbp], rax
	mov	rax, QWORD PTR -968[rbp]
	mov	rdx, QWORD PTR -1056[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1056[rbp]
	mov	rdi, rax
	call	pci_enable_device
	mov	DWORD PTR -1008[rbp], eax
	cmp	DWORD PTR -1008[rbp], 0
	je	.L173
	lea	rdi, .LC33[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -1
	jmp	.L197
.L173:
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -960[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	add	rax, 12
	mov	QWORD PTR -952[rbp], rax
	mov	rax, QWORD PTR -952[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -1022[rbp], ax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -944[rbp], rax
	mov	rax, QWORD PTR -944[rbp]
	add	rax, 14
	mov	QWORD PTR -936[rbp], rax
	mov	rax, QWORD PTR -936[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -1020[rbp], ax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -928[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	add	rax, 48
	mov	QWORD PTR -920[rbp], rax
	mov	rax, QWORD PTR -920[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1004[rbp], eax
	mov	eax, DWORD PTR -1004[rbp]
	mov	BYTE PTR -1025[rbp], al
	mov	DWORD PTR -1012[rbp], 0
.L175:
	cmp	DWORD PTR -1012[rbp], 5
	jg	.L200
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -136[rbp], rax
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -128[rbp], rax
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 5
	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]
	add	rax, 56
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -1012[rbp], 1
	jmp	.L175
.L200:
	nop
.L177:
	mov	eax, 4294967295
	mov	QWORD PTR -912[rbp], rax
	mov	rdx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	pci_set_dma_mask@PLT
	mov	DWORD PTR -1000[rbp], eax
	cmp	DWORD PTR -1000[rbp], 0
	je	.L178
	lea	rdi, .LC34[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -1
	jmp	.L197
.L178:
	lea	rdx, -1024[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	esi, 4
	mov	rdi, rax
	call	pci_read_config_word
	lea	rdx, -1026[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	esi, 8
	mov	rdi, rax
	call	pci_read_config_byte
	lea	rdx, -1028[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	esi, 12
	mov	rdi, rax
	call	pci_read_config_byte
	lea	rdx, -1027[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	esi, 13
	mov	rdi, rax
	call	pci_read_config_byte
	lea	rdx, -1016[rbp]
	mov	rax, QWORD PTR -1056[rbp]
	mov	esi, 44
	mov	rdi, rax
	call	pci_read_config_dword
	lea	rax, -1024[rbp]
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -1018[rbp], ax
	movzx	eax, WORD PTR -1018[rbp]
	mov	DWORD PTR -996[rbp], eax
	mov	eax, DWORD PTR -996[rbp]
	and	eax, 2
	mov	DWORD PTR -992[rbp], eax
	cmp	DWORD PTR -992[rbp], 0
	jne	.L201
	lea	rdi, .LC35[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -1
	jmp	.L197
.L201:
	nop
.L179:
	nop
.L180:
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -896[rbp], rax
	mov	rax, QWORD PTR -896[rbp]
	add	rax, 104
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -888[rbp]
	movzx	edx, BYTE PTR -1025[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -1012[rbp], 0
.L181:
	cmp	DWORD PTR -1012[rbp], 5
	jg	.L202
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -880[rbp], rax
	mov	rax, QWORD PTR -880[rbp]
	add	rax, 24
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	add	rax, 56
	mov	QWORD PTR -864[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -856[rbp], rax
	mov	rdx, QWORD PTR -856[rbp]
	mov	rax, QWORD PTR -864[rbp]
	add	rax, rdx
	mov	QWORD PTR -848[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -840[rbp]
	and	eax, 1
	test	rax, rax
	je	.L184
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -832[rbp]
	add	rax, 88
	mov	QWORD PTR -824[rbp], rax
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -816[rbp], rax
	lea	rdx, -80[rbp]
	mov	rax, QWORD PTR -816[rbp]
	add	rax, rdx
	mov	QWORD PTR -808[rbp], rax
	mov	rdx, QWORD PTR -808[rbp]
	mov	rax, QWORD PTR -824[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 96
	mov	QWORD PTR -792[rbp], rax
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -784[rbp], rax
	mov	rax, QWORD PTR -784[rbp]
	add	rax, 8
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -776[rbp]
	add	rax, 56
	mov	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -760[rbp], rax
	mov	rdx, QWORD PTR -760[rbp]
	mov	rax, QWORD PTR -768[rbp]
	add	rax, rdx
	mov	QWORD PTR -752[rbp], rax
	mov	rax, QWORD PTR -752[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -744[rbp], rax
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	add	rax, 16
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	add	rax, 56
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -712[rbp], rax
	mov	rdx, QWORD PTR -712[rbp]
	mov	rax, QWORD PTR -720[rbp]
	add	rax, rdx
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -704[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -696[rbp], rax
	mov	rax, QWORD PTR -696[rbp]
	sub	rax, QWORD PTR -744[rbp]
	mov	QWORD PTR -688[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	mov	rdx, QWORD PTR -688[rbp]
	add	rdx, 1
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -680[rbp], rax
	mov	rax, QWORD PTR -680[rbp]
	add	rax, 88
	mov	QWORD PTR -672[rbp], rax
	mov	rax, QWORD PTR -672[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -656[rbp]
	add	rax, 96
	mov	QWORD PTR -648[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -640[rbp], rax
	mov	rcx, QWORD PTR -640[rbp]
	mov	rax, QWORD PTR -664[rbp]
	lea	rdx, .LC16[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	request_region
	mov	QWORD PTR -632[rbp], rax
	cmp	QWORD PTR -632[rbp], 0
	jne	.L203
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	add	rax, 88
	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 -1048[rbp]
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	add	rax, 96
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -584[rbp], rax
	mov	rdx, QWORD PTR -584[rbp]
	mov	rax, QWORD PTR -608[rbp]
	mov	rsi, rax
	lea	rdi, .LC36[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	add	rax, 88
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -568[rbp]
	mov	QWORD PTR [rax], 0
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -560[rbp]
	add	rax, 96
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L203
.L184:
	add	DWORD PTR -1012[rbp], 1
	jmp	.L181
.L202:
	nop
	jmp	.L183
.L203:
	nop
.L183:
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	add	rax, 80
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -536[rbp]
	mov	QWORD PTR [rax], 0
	mov	DWORD PTR -1012[rbp], 0
.L186:
	cmp	DWORD PTR -1012[rbp], 5
	jg	.L204
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -528[rbp]
	add	rax, 24
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	add	rax, 56
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -504[rbp], rax
	mov	rdx, QWORD PTR -504[rbp]
	mov	rax, QWORD PTR -512[rbp]
	add	rax, rdx
	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 -488[rbp]
	and	eax, 1
	mov	QWORD PTR -480[rbp], rax
	cmp	QWORD PTR -480[rbp], 0
	jne	.L189
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	add	rax, 80
	mov	QWORD PTR -464[rbp], rax
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	add	rax, 8
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	add	rax, 56
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -432[rbp], rax
	mov	rdx, QWORD PTR -432[rbp]
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	mov	QWORD PTR -424[rbp], rax
	mov	rdx, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR -464[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	jmp	.L188
.L189:
	add	DWORD PTR -1012[rbp], 1
	jmp	.L186
.L204:
	nop
.L188:
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, 80
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -400[rbp], rax
	cmp	QWORD PTR -400[rbp], 0
	jne	.L190
	mov	eax, -1
	jmp	.L197
.L190:
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	add	rax, 72
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	add	rax, 80
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -360[rbp], rax
	mov	QWORD PTR -352[rbp], 128
	mov	rbx, QWORD PTR -384[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	mov	rax, QWORD PTR -360[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	remap_pci_mem
	mov	QWORD PTR [rbx], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	add	rax, 72
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -328[rbp], rax
	cmp	QWORD PTR -328[rbp], 0
	jne	.L191
	mov	eax, -1
	jmp	.L197
.L191:
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 56
	mov	QWORD PTR -312[rbp], rax
	lea	rax, -1016[rbp]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	rdx, QWORD PTR -304[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -1012[rbp], 0
.L192:
	mov	QWORD PTR -296[rbp], 15
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	cmp	rax, QWORD PTR -296[rbp]
	jnb	.L205
	mov	eax, DWORD PTR -1012[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -280[rbp], rax
	lea	rdx, products[rip]
	mov	rax, QWORD PTR -280[rbp]
	add	rax, rdx
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -988[rbp], eax
	lea	rax, -1016[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -984[rbp], eax
	mov	eax, DWORD PTR -984[rbp]
	cmp	eax, DWORD PTR -988[rbp]
	jne	.L195
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 64
	mov	QWORD PTR -248[rbp], rax
	mov	eax, DWORD PTR -1012[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 8
	mov	QWORD PTR -232[rbp], rax
	lea	rdx, products[rip]
	mov	rax, QWORD PTR -232[rbp]
	add	rax, rdx
	mov	QWORD PTR -224[rbp], rax
	mov	rdx, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 504
	mov	QWORD PTR -208[rbp], rax
	mov	eax, DWORD PTR -1012[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 16
	mov	QWORD PTR -192[rbp], rax
	lea	rdx, products[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 -208[rbp]
	mov	rdx, QWORD PTR -176[rbp]
	mov	rcx, QWORD PTR [rdx]
	mov	rbx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR 16[rdx]
	mov	rbx, QWORD PTR 24[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rdx, QWORD PTR 32[rdx]
	mov	QWORD PTR 32[rax], rdx
	jmp	.L194
.L195:
	add	DWORD PTR -1012[rbp], 1
	jmp	.L192
.L205:
	nop
.L194:
	mov	QWORD PTR -168[rbp], 15
	mov	eax, DWORD PTR -1012[rbp]
	cdqe
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	cmp	rax, QWORD PTR -168[rbp]
	jne	.L196
	lea	rax, -1016[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -980[rbp], eax
	mov	eax, DWORD PTR -980[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rsi, rax
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -1
	jmp	.L197
.L196:
	mov	eax, 0
.L197:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L198
	call	__stack_chk_fail@PLT
.L198:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	cpqarray_pci_init, .-cpqarray_pci_init
	.globl	remap_pci_mem
	.type	remap_pci_mem, @function
remap_pci_mem:
.LFB47:
	.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	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	QWORD PTR -64[rbp], 4096
	mov	rax, QWORD PTR -64[rbp]
	sub	rax, 1
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	not	rax
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	and	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	sub	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	ioremap@PLT
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	cmp	QWORD PTR -8[rbp], 0
	je	.L207
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -72[rbp], rax
	jmp	.L208
.L207:
	mov	QWORD PTR -72[rbp], 0
.L208:
	mov	rax, QWORD PTR -72[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	remap_pci_mem, .-remap_pci_mem
	.section	.rodata
	.align 8
.LC38:
	.string	"<4>cpqarray: I/O range already in use addr = %lx length = %ld\n"
	.align 8
.LC39:
	.string	"<4>cpqarray: Can't register EISA controller %d\n"
	.text
	.globl	cpqarray_eisa_detect
	.type	cpqarray_eisa_detect, @function
cpqarray_eisa_detect:
.LFB48:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 888
	.cfi_offset 3, -24
	mov	DWORD PTR -888[rbp], 0
	mov	DWORD PTR -876[rbp], 0
.L211:
	cmp	DWORD PTR -888[rbp], 7
	jg	.L230
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	sal	rax, 2
	mov	QWORD PTR -816[rbp], rax
	lea	rdx, eisa[rip]
	mov	rax, QWORD PTR -816[rbp]
	add	rax, rdx
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -872[rbp], eax
	cmp	DWORD PTR -872[rbp], 0
	je	.L231
	call	alloc_cpqarray_hba
	mov	DWORD PTR -868[rbp], eax
	cmp	DWORD PTR -868[rbp], -1
	je	.L232
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	sal	rax, 2
	mov	QWORD PTR -800[rbp], rax
	lea	rdx, eisa[rip]
	mov	rax, QWORD PTR -800[rbp]
	add	rax, rdx
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -864[rbp], eax
	mov	eax, DWORD PTR -864[rbp]
	add	eax, 3200
	mov	DWORD PTR -860[rbp], eax
	mov	eax, DWORD PTR -860[rbp]
	mov	DWORD PTR -856[rbp], eax
	mov	eax, DWORD PTR -856[rbp]
	mov	edi, eax
	call	inl
	mov	DWORD PTR -852[rbp], eax
	mov	DWORD PTR -884[rbp], 0
.L216:
	mov	QWORD PTR -784[rbp], 15
	mov	eax, DWORD PTR -884[rbp]
	cdqe
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -776[rbp]
	cmp	rax, QWORD PTR -784[rbp]
	jnb	.L233
	mov	eax, DWORD PTR -884[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -768[rbp], rax
	lea	rdx, products[rip]
	mov	rax, QWORD PTR -768[rbp]
	add	rax, rdx
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -760[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -848[rbp], eax
	mov	eax, DWORD PTR -852[rbp]
	cmp	eax, DWORD PTR -848[rbp]
	je	.L234
	add	DWORD PTR -884[rbp], 1
	jmp	.L216
.L233:
	nop
	jmp	.L218
.L234:
	nop
.L218:
	mov	QWORD PTR -752[rbp], 15
	mov	eax, DWORD PTR -884[rbp]
	cdqe
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	cmp	rax, QWORD PTR -752[rbp]
	jne	.L220
	mov	eax, DWORD PTR -852[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rax
	lea	rdi, .LC37[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L211
.L220:
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -736[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -736[rbp]
	add	rax, rdx
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -720[rbp]
	mov	QWORD PTR -712[rbp], rax
	mov	DWORD PTR -844[rbp], 664
	mov	edx, DWORD PTR -844[rbp]
	mov	rax, QWORD PTR -712[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -704[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -704[rbp]
	add	rax, rdx
	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 -688[rbp]
	mov	QWORD PTR -680[rbp], rax
	mov	rax, QWORD PTR -680[rbp]
	add	rax, 88
	mov	QWORD PTR -672[rbp], rax
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	sal	rax, 2
	mov	QWORD PTR -664[rbp], rax
	lea	rdx, eisa[rip]
	mov	rax, QWORD PTR -664[rbp]
	add	rax, rdx
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -656[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -840[rbp], eax
	mov	rax, QWORD PTR -672[rbp]
	mov	edx, DWORD PTR -840[rbp]
	movsx	rdx, edx
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -648[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -648[rbp]
	add	rax, rdx
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -640[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	add	rax, 96
	mov	QWORD PTR -616[rbp], rax
	mov	rax, QWORD PTR -616[rbp]
	mov	QWORD PTR [rax], 2047
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -608[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -608[rbp]
	add	rax, rdx
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	add	rax, 88
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -568[rbp], rax
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -560[rbp], rax
	lea	rdx, hba[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, 96
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -528[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -520[rbp], rax
	mov	rcx, QWORD PTR -520[rbp]
	mov	rax, QWORD PTR -568[rbp]
	lea	rdx, .LC16[rip]
	mov	rsi, rcx
	mov	rdi, rax
	call	request_region
	mov	QWORD PTR -512[rbp], rax
	cmp	QWORD PTR -512[rbp], 0
	jne	.L221
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -120[rbp], rax
	lea	rdx, hba[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, 88
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -72[rbp], rax
	lea	rdx, hba[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, 96
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -80[rbp]
	mov	rsi, rax
	lea	rdi, .LC38[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR -868[rbp]
	mov	edi, eax
	call	free_hba
	jmp	.L211
.L221:
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	sal	rax, 2
	mov	QWORD PTR -504[rbp], rax
	lea	rdx, eisa[rip]
	mov	rax, QWORD PTR -504[rbp]
	add	rax, rdx
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -836[rbp], eax
	mov	eax, DWORD PTR -836[rbp]
	add	eax, 3264
	mov	DWORD PTR -832[rbp], eax
	mov	eax, DWORD PTR -832[rbp]
	mov	DWORD PTR -828[rbp], eax
	mov	eax, DWORD PTR -828[rbp]
	mov	edi, eax
	call	inb
	mov	BYTE PTR -889[rbp], al
	movzx	eax, BYTE PTR -889[rbp]
	mov	DWORD PTR -824[rbp], eax
	mov	eax, DWORD PTR -824[rbp]
	sar	eax, 4
	mov	DWORD PTR -880[rbp], eax
	mov	eax, DWORD PTR -880[rbp]
	and	eax, 1
	test	eax, eax
	je	.L222
	mov	DWORD PTR -880[rbp], 11
	jmp	.L223
.L222:
	mov	eax, DWORD PTR -880[rbp]
	and	eax, 2
	test	eax, eax
	je	.L224
	mov	DWORD PTR -880[rbp], 10
	jmp	.L223
.L224:
	mov	eax, DWORD PTR -880[rbp]
	and	eax, 4
	test	eax, eax
	je	.L225
	mov	DWORD PTR -880[rbp], 14
	jmp	.L223
.L225:
	mov	eax, DWORD PTR -880[rbp]
	and	eax, 8
	test	eax, eax
	je	.L223
	mov	DWORD PTR -880[rbp], 15
.L223:
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -488[rbp], rax
	lea	rdx, hba[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, 104
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	edx, DWORD PTR -880[rbp]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -448[rbp], 0
	mov	rax, QWORD PTR -448[rbp]
	add	rax, 4
	mov	QWORD PTR -440[rbp], rax
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -432[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	QWORD PTR -408[rbp], rax
	mov	rdx, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	mov	QWORD PTR -392[rbp], rax
	mov	edx, DWORD PTR nr_ctlr[rip]
	mov	rax, QWORD PTR -392[rbp]
	lea	rsi, .LC29[rip]
	mov	rdi, rax
	mov	eax, 0
	call	sprintf@PLT
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -384[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -384[rbp]
	add	rax, rdx
	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 -368[rbp]
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	add	rax, 64
	mov	QWORD PTR -352[rbp], rax
	mov	eax, DWORD PTR -884[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	add	rax, 8
	mov	QWORD PTR -336[rbp], rax
	lea	rdx, products[rip]
	mov	rax, QWORD PTR -336[rbp]
	add	rax, rdx
	mov	QWORD PTR -328[rbp], rax
	mov	rdx, QWORD PTR -328[rbp]
	mov	rax, QWORD PTR -352[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -320[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, rdx
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 504
	mov	QWORD PTR -288[rbp], rax
	mov	eax, DWORD PTR -884[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 16
	mov	QWORD PTR -272[rbp], rax
	lea	rdx, products[rip]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, rdx
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	rdx, QWORD PTR -256[rbp]
	mov	rcx, QWORD PTR [rdx]
	mov	rbx, QWORD PTR 8[rdx]
	mov	QWORD PTR [rax], rcx
	mov	QWORD PTR 8[rax], rbx
	mov	rcx, QWORD PTR 16[rdx]
	mov	rbx, QWORD PTR 24[rdx]
	mov	QWORD PTR 16[rax], rcx
	mov	QWORD PTR 24[rax], rbx
	mov	rdx, QWORD PTR 32[rdx]
	mov	QWORD PTR 32[rax], rdx
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -248[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, rdx
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	edx, DWORD PTR -868[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -224[rbp], rax
	lea	rdx, hba[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]
	add	rax, 56
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	edx, DWORD PTR -852[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -868[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -184[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	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 -168[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 48
	mov	QWORD PTR -152[rbp], rax
	mov	QWORD PTR -144[rbp], 0
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -144[rbp]
	mov	QWORD PTR [rax], rdx
	nop
.L226:
.L227:
	add	DWORD PTR -876[rbp], 1
	add	DWORD PTR -888[rbp], 1
	mov	QWORD PTR -136[rbp], 0
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR -868[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	cpqarray_register_ctlr
	mov	DWORD PTR -820[rbp], eax
	cmp	DWORD PTR -820[rbp], -1
	jne	.L211
	mov	eax, DWORD PTR -868[rbp]
	mov	esi, eax
	lea	rdi, .LC39[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L211
.L230:
	nop
	jmp	.L214
.L231:
	nop
	jmp	.L214
.L232:
	nop
.L214:
	mov	eax, DWORD PTR -876[rbp]
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	cpqarray_eisa_detect, .-cpqarray_eisa_detect
	.globl	ida_open
	.type	ida_open, @function
ida_open:
.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, 272
	mov	QWORD PTR -264[rbp], rdi
	mov	QWORD PTR -272[rbp], rsi
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 16
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 24
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	rdi, rax
	call	get_drv@PLT
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 16
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 24
	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	rdi, rax
	call	get_host@PLT
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -112[rbp], rax
	nop
.L236:
.L237:
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -248[rbp], eax
	cmp	DWORD PTR -248[rbp], 0
	jne	.L238
	mov	edi, 17
	call	capable@PLT
	mov	DWORD PTR -244[rbp], eax
	cmp	DWORD PTR -244[rbp], 0
	jne	.L239
	mov	eax, -6
	jmp	.L240
.L239:
	mov	edi, 21
	call	capable@PLT
	mov	DWORD PTR -240[rbp], eax
	cmp	DWORD PTR -240[rbp], 0
	jne	.L238
	mov	QWORD PTR -88[rbp], 0
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 112
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	cmp	rax, QWORD PTR -48[rbp]
	je	.L238
	mov	eax, -6
	jmp	.L240
.L238:
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 108
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 108
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -236[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -236[rbp]
	add	edx, 1
	mov	DWORD PTR [rax], edx
	mov	eax, 0
.L240:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	ida_open, .-ida_open
	.globl	ida_release
	.type	ida_release, @function
ida_release:
.LFB50:
	.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	QWORD PTR -128[rbp], rsi
	mov	rax, QWORD PTR -120[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
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 24
	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	rdi, rax
	call	get_host@PLT
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 108
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 108
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -100[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -100[rbp]
	sub	edx, 1
	mov	DWORD PTR [rax], edx
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	ida_release, .-ida_release
	.globl	do_ida_request
	.type	do_ida_request, @function
do_ida_request:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1824
	mov	QWORD PTR -1816[rbp], rdi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -1816[rbp]
	mov	QWORD PTR -1728[rbp], rax
	mov	rax, QWORD PTR -1728[rbp]
	add	rax, 48
	mov	QWORD PTR -1720[rbp], rax
	mov	rax, QWORD PTR -1720[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1712[rbp], rax
	mov	rax, QWORD PTR -1712[rbp]
	mov	QWORD PTR -1704[rbp], rax
	mov	rax, QWORD PTR -1816[rbp]
	mov	QWORD PTR -1696[rbp], rax
	mov	rax, QWORD PTR -1696[rbp]
	add	rax, 56
	mov	QWORD PTR -1688[rbp], rax
	mov	rax, QWORD PTR -1688[rbp]
	mov	QWORD PTR -1680[rbp], rax
	mov	rax, QWORD PTR -1680[rbp]
	mov	QWORD PTR -1672[rbp], rax
	mov	rax, QWORD PTR -1672[rbp]
	mov	rsi, rax
	mov	edi, 7
	call	test_bit@PLT
	mov	DWORD PTR -1792[rbp], eax
	cmp	DWORD PTR -1792[rbp], 0
	jne	.L263
	nop
.L244:
	mov	rax, QWORD PTR -1816[rbp]
	mov	rdi, rax
	call	elv_next_request@PLT
	mov	QWORD PTR -1664[rbp], rax
	cmp	QWORD PTR -1664[rbp], 0
	je	.L264
	mov	rax, QWORD PTR -1664[rbp]
	mov	QWORD PTR -1656[rbp], rax
	mov	rax, QWORD PTR -1656[rbp]
	add	rax, 96
	mov	QWORD PTR -1648[rbp], rax
	mov	rax, QWORD PTR -1648[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -1802[rbp], ax
	movzx	eax, WORD PTR -1802[rbp]
	mov	DWORD PTR -1788[rbp], eax
	cmp	DWORD PTR -1788[rbp], 32
	setg	al
	movzx	eax, al
	mov	DWORD PTR -1784[rbp], eax
	mov	eax, DWORD PTR -1784[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	rax, QWORD PTR -1704[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	cmd_alloc
	mov	QWORD PTR -1640[rbp], rax
	mov	QWORD PTR -1632[rbp], 0
	mov	rax, QWORD PTR -1632[rbp]
	mov	QWORD PTR -1624[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1616[rbp], rax
	mov	rax, QWORD PTR -1616[rbp]
	cmp	rax, QWORD PTR -1624[rbp]
	je	.L265
	mov	rax, QWORD PTR -1664[rbp]
	mov	rdi, rax
	call	blkdev_dequeue_request@PLT
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1608[rbp], rax
	mov	rax, QWORD PTR -1608[rbp]
	add	rax, 288
	mov	QWORD PTR -1600[rbp], rax
	mov	rax, QWORD PTR -1600[rbp]
	mov	rdx, QWORD PTR -1704[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -1592[rbp], 0
	mov	rax, QWORD PTR -1592[rbp]
	add	rax, 112
	mov	QWORD PTR -1584[rbp], rax
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1576[rbp], rax
	mov	rdx, QWORD PTR -1576[rbp]
	mov	rax, QWORD PTR -1584[rbp]
	add	rax, rdx
	mov	QWORD PTR -1568[rbp], rax
	mov	rax, QWORD PTR -1568[rbp]
	mov	QWORD PTR -1560[rbp], rax
	mov	rax, QWORD PTR -1664[rbp]
	mov	QWORD PTR -1552[rbp], rax
	mov	rax, QWORD PTR -1552[rbp]
	add	rax, 88
	mov	QWORD PTR -1544[rbp], rax
	mov	rax, QWORD PTR -1544[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1536[rbp], rax
	mov	rax, QWORD PTR -1536[rbp]
	mov	QWORD PTR -1528[rbp], rax
	mov	rax, QWORD PTR -1528[rbp]
	add	rax, 64
	mov	QWORD PTR -1520[rbp], rax
	mov	rax, QWORD PTR -1520[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1512[rbp], rax
	mov	rax, QWORD PTR -1512[rbp]
	mov	QWORD PTR -1504[rbp], rax
	mov	rax, QWORD PTR -1504[rbp]
	sub	rax, QWORD PTR -1560[rbp]
	sar	rax, 3
	mov	rdx, rax
	movabs	rax, -6148914691236517205
	imul	rax, rdx
	mov	DWORD PTR -1780[rbp], eax
	mov	eax, DWORD PTR -1780[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -1640[rbp]
	mov	BYTE PTR [rax], dl
	mov	QWORD PTR -1496[rbp], 2
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1488[rbp], rax
	mov	rdx, QWORD PTR -1488[rbp]
	mov	rax, QWORD PTR -1496[rbp]
	add	rax, rdx
	mov	QWORD PTR -1480[rbp], rax
	mov	QWORD PTR -1472[rbp], 68
	mov	rax, QWORD PTR -1480[rbp]
	mov	rdx, QWORD PTR -1472[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1464[rbp], rax
	mov	rax, QWORD PTR -1464[rbp]
	add	rax, 276
	mov	QWORD PTR -1456[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1448[rbp], rax
	mov	rax, QWORD PTR -1448[rbp]
	add	rax, 276
	mov	QWORD PTR -1440[rbp], rax
	mov	rax, QWORD PTR -1440[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1776[rbp], eax
	mov	eax, DWORD PTR -1776[rbp]
	mov	QWORD PTR -1432[rbp], rax
	mov	rax, QWORD PTR -1432[rbp]
	add	rax, 272
	mov	QWORD PTR -1424[rbp], rax
	mov	rax, QWORD PTR -1456[rbp]
	mov	rdx, QWORD PTR -1424[rbp]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -1416[rbp], 4
	mov	rax, QWORD PTR -1416[rbp]
	add	rax, 4
	mov	QWORD PTR -1408[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1400[rbp], rax
	mov	rdx, QWORD PTR -1400[rbp]
	mov	rax, QWORD PTR -1408[rbp]
	add	rax, rdx
	mov	QWORD PTR -1392[rbp], rax
	mov	rax, QWORD PTR -1664[rbp]
	mov	QWORD PTR -1384[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	add	rax, 48
	mov	QWORD PTR -1376[rbp], rax
	mov	rax, QWORD PTR -1376[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1368[rbp], rax
	mov	rax, QWORD PTR -1392[rbp]
	mov	rdx, QWORD PTR -1368[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1360[rbp], rax
	mov	rax, QWORD PTR -1360[rbp]
	add	rax, 312
	mov	QWORD PTR -1352[rbp], rax
	mov	rax, QWORD PTR -1352[rbp]
	mov	rdx, QWORD PTR -1664[rbp]
	mov	QWORD PTR [rax], rdx
	nop
.L248:
.L249:
	mov	QWORD PTR -1344[rbp], 0
	lea	rdx, -784[rbp]
	mov	rax, QWORD PTR -1344[rbp]
	add	rax, rdx
	mov	QWORD PTR -1336[rbp], rax
	mov	rax, QWORD PTR -1336[rbp]
	mov	QWORD PTR -1328[rbp], rax
	mov	rdx, QWORD PTR -1328[rbp]
	mov	rcx, QWORD PTR -1664[rbp]
	mov	rax, QWORD PTR -1816[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	blk_rq_map_sg@PLT
	mov	DWORD PTR -1772[rbp], eax
	mov	rax, QWORD PTR -1664[rbp]
	mov	QWORD PTR -1320[rbp], rax
	mov	rax, QWORD PTR -1320[rbp]
	add	rax, 40
	mov	QWORD PTR -1312[rbp], rax
	mov	rax, QWORD PTR -1312[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1768[rbp], eax
	mov	eax, DWORD PTR -1768[rbp]
	and	eax, 1
	mov	DWORD PTR -1764[rbp], eax
	cmp	DWORD PTR -1764[rbp], 0
	jne	.L250
	mov	DWORD PTR -1796[rbp], 2
	jmp	.L251
.L250:
	mov	DWORD PTR -1796[rbp], 1
.L251:
	mov	DWORD PTR -1800[rbp], 0
.L252:
	mov	eax, DWORD PTR -1800[rbp]
	cmp	eax, DWORD PTR -1772[rbp]
	jge	.L266
	mov	eax, DWORD PTR -1800[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1000[rbp], rax
	mov	rax, QWORD PTR -1000[rbp]
	add	rax, 12
	mov	QWORD PTR -992[rbp], rax
	mov	rax, QWORD PTR -992[rbp]
	add	rax, 4
	mov	QWORD PTR -984[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -976[rbp], rax
	mov	rdx, QWORD PTR -976[rbp]
	mov	rax, QWORD PTR -984[rbp]
	add	rax, rdx
	mov	QWORD PTR -968[rbp], rax
	mov	eax, DWORD PTR -1800[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -960[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	add	rax, 16
	mov	QWORD PTR -952[rbp], rax
	lea	rdx, -784[rbp]
	mov	rax, QWORD PTR -952[rbp]
	add	rax, rdx
	mov	QWORD PTR -944[rbp], rax
	mov	rdx, QWORD PTR -944[rbp]
	mov	rax, QWORD PTR -968[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -936[rbp], rax
	mov	rax, QWORD PTR -936[rbp]
	add	rax, 48
	mov	QWORD PTR -928[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -920[rbp], rax
	mov	eax, DWORD PTR -1800[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -912[rbp], rax
	lea	rdx, -784[rbp]
	mov	rax, QWORD PTR -912[rbp]
	add	rax, rdx
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -896[rbp], rax
	mov	eax, DWORD PTR -1800[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -888[rbp]
	add	rax, 8
	mov	QWORD PTR -880[rbp], rax
	lea	rdx, -784[rbp]
	mov	rax, QWORD PTR -880[rbp]
	add	rax, rdx
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1740[rbp], eax
	mov	eax, DWORD PTR -1740[rbp]
	mov	QWORD PTR -864[rbp], rax
	mov	eax, DWORD PTR -1800[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -856[rbp]
	add	rax, 16
	mov	QWORD PTR -848[rbp], rax
	lea	rdx, -784[rbp]
	mov	rax, QWORD PTR -848[rbp]
	add	rax, rdx
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -840[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1736[rbp], eax
	mov	edi, DWORD PTR -1796[rbp]
	mov	ecx, DWORD PTR -1736[rbp]
	mov	rdx, QWORD PTR -864[rbp]
	mov	rsi, QWORD PTR -896[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	pci_map_page@PLT
	mov	DWORD PTR -1732[rbp], eax
	mov	eax, DWORD PTR -1800[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -832[rbp]
	add	rax, 4
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -824[rbp]
	add	rax, 12
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 4
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rdx, QWORD PTR -800[rbp]
	mov	rax, QWORD PTR -808[rbp]
	add	rax, rdx
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	mov	edx, DWORD PTR -1732[rbp]
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -1800[rbp], 1
	jmp	.L252
.L254:
.L266:
	nop
.L255:
	nop
.L256:
	mov	QWORD PTR -1304[rbp], 10
	mov	rax, QWORD PTR -1304[rbp]
	add	rax, 4
	mov	QWORD PTR -1296[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1288[rbp], rax
	mov	rdx, QWORD PTR -1288[rbp]
	mov	rax, QWORD PTR -1296[rbp]
	add	rax, rdx
	mov	QWORD PTR -1280[rbp], rax
	mov	rax, QWORD PTR -1280[rbp]
	mov	edx, DWORD PTR -1772[rbp]
	mov	BYTE PTR [rax], dl
	mov	QWORD PTR -1272[rbp], 8
	mov	rax, QWORD PTR -1272[rbp]
	add	rax, 4
	mov	QWORD PTR -1264[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1256[rbp], rax
	mov	rdx, QWORD PTR -1256[rbp]
	mov	rax, QWORD PTR -1264[rbp]
	add	rax, rdx
	mov	QWORD PTR -1248[rbp], rax
	mov	rax, QWORD PTR -1664[rbp]
	mov	QWORD PTR -1240[rbp], rax
	mov	rax, QWORD PTR -1240[rbp]
	add	rax, 56
	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 -1248[rbp]
	mov	rdx, QWORD PTR -1224[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -1664[rbp]
	mov	QWORD PTR -1216[rbp], rax
	mov	rax, QWORD PTR -1216[rbp]
	add	rax, 40
	mov	QWORD PTR -1208[rbp], rax
	mov	rax, QWORD PTR -1208[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1760[rbp], eax
	mov	eax, DWORD PTR -1760[rbp]
	and	eax, 1
	mov	DWORD PTR -1756[rbp], eax
	cmp	DWORD PTR -1756[rbp], 0
	jne	.L257
	mov	QWORD PTR -1168[rbp], 2
	mov	rax, QWORD PTR -1168[rbp]
	add	rax, 4
	mov	QWORD PTR -1160[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1152[rbp], rax
	mov	rdx, QWORD PTR -1152[rbp]
	mov	rax, QWORD PTR -1160[rbp]
	add	rax, rdx
	mov	QWORD PTR -1144[rbp], rax
	mov	rax, QWORD PTR -1144[rbp]
	mov	BYTE PTR [rax], 32
	jmp	.L258
.L257:
	mov	QWORD PTR -1200[rbp], 2
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 4
	mov	QWORD PTR -1192[rbp], rax
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1184[rbp], rax
	mov	rdx, QWORD PTR -1184[rbp]
	mov	rax, QWORD PTR -1192[rbp]
	add	rax, rdx
	mov	QWORD PTR -1176[rbp], rax
	mov	rax, QWORD PTR -1176[rbp]
	mov	BYTE PTR [rax], 48
.L258:
	mov	rax, QWORD PTR -1640[rbp]
	mov	QWORD PTR -1136[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	add	rax, 320
	mov	QWORD PTR -1128[rbp], rax
	mov	rax, QWORD PTR -1128[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1120[rbp], rax
	mov	rax, QWORD PTR -1120[rbp]
	add	rax, 544
	mov	QWORD PTR -1112[rbp], rax
	mov	rax, QWORD PTR -1112[rbp]
	mov	QWORD PTR -1104[rbp], rax
	mov	rdx, QWORD PTR -1640[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	addQ@PLT
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1096[rbp], rax
	mov	rax, QWORD PTR -1096[rbp]
	add	rax, 600
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1080[rbp], rax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, 600
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1072[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1752[rbp], eax
	mov	rax, QWORD PTR -1088[rbp]
	mov	edx, DWORD PTR -1752[rbp]
	add	edx, 1
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1064[rbp], rax
	mov	rax, QWORD PTR -1064[rbp]
	add	rax, 604
	mov	QWORD PTR -1056[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1748[rbp], eax
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 600
	mov	QWORD PTR -1040[rbp], rax
	mov	rax, QWORD PTR -1040[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1744[rbp], eax
	mov	eax, DWORD PTR -1744[rbp]
	cmp	eax, DWORD PTR -1748[rbp]
	jbe	.L244
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1032[rbp], rax
	mov	rax, QWORD PTR -1032[rbp]
	add	rax, 604
	mov	QWORD PTR -1024[rbp], rax
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1016[rbp], rax
	mov	rax, QWORD PTR -1016[rbp]
	add	rax, 600
	mov	QWORD PTR -1008[rbp], rax
	mov	rdx, QWORD PTR -1008[rbp]
	mov	rax, QWORD PTR -1024[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	jmp	.L244
.L263:
	nop
	jmp	.L245
.L264:
	nop
	jmp	.L245
.L265:
	nop
.L245:
	mov	rax, QWORD PTR -1704[rbp]
	mov	rdi, rax
	call	start_io
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L261
	call	__stack_chk_fail@PLT
.L261:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	do_ida_request, .-do_ida_request
	.globl	start_io
	.type	start_io, @function
start_io:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 224
	mov	QWORD PTR -216[rbp], rdi
.L268:
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 544
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -176[rbp], rax
	mov	QWORD PTR -168[rbp], 0
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	cmp	rax, QWORD PTR -160[rbp]
	setne	al
	movzx	eax, al
	mov	DWORD PTR -200[rbp], eax
	cmp	DWORD PTR -200[rbp], 0
	je	.L274
	mov	QWORD PTR -144[rbp], 520
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rdx, QWORD PTR -136[rbp]
	mov	rax, QWORD PTR -144[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 -216[rbp]
	mov	rdx, QWORD PTR -120[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -112[rbp], rax
	cmp	QWORD PTR -112[rbp], 0
	je	.L275
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 544
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	removeQ@PLT
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 600
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 600
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -196[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -196[rbp]
	sub	edx, 1
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 504
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	rcx, QWORD PTR -32[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 552
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	addQ@PLT
	jmp	.L268
.L274:
	nop
.L270:
	jmp	.L267
.L275:
	nop
.L267:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	start_io, .-start_io
	.section	.rodata
	.align 8
.LC40:
	.string	"<4>cpqarray: Completion of %08lx ignored\n"
	.text
	.globl	do_ida_intr
	.type	do_ida_intr, @function
do_ida_intr:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 560
	mov	DWORD PTR -548[rbp], edi
	mov	QWORD PTR -560[rbp], rsi
	mov	rax, QWORD PTR -560[rbp]
	mov	QWORD PTR -496[rbp], rax
	mov	QWORD PTR -488[rbp], 528
	mov	rax, QWORD PTR -496[rbp]
	mov	QWORD PTR -480[rbp], rax
	mov	rdx, QWORD PTR -480[rbp]
	mov	rax, QWORD PTR -488[rbp]
	add	rax, rdx
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	mov	rdx, QWORD PTR -464[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -456[rbp], rax
	cmp	QWORD PTR -456[rbp], 0
	jne	.L277
	mov	eax, 0
	jmp	.L278
.L277:
	mov	rax, QWORD PTR -496[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -540[rbp], eax
	mov	eax, DWORD PTR -540[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -448[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -448[rbp]
	add	rax, rdx
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	add	rax, 592
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	QWORD PTR -408[rbp], rax
	mov	rdx, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR -408[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	spin_lock_irqsave
	mov	rax, QWORD PTR -456[rbp]
	and	eax, 1
	test	rax, rax
	je	.L279
.L291:
	nop
.L280:
	mov	QWORD PTR -392[rbp], 536
	mov	rax, QWORD PTR -496[rbp]
	mov	QWORD PTR -384[rbp], rax
	mov	rdx, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -392[rbp]
	add	rax, rdx
	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 -496[rbp]
	mov	rdx, QWORD PTR -368[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	mov	DWORD PTR -536[rbp], eax
	cmp	DWORD PTR -536[rbp], 0
	je	.L292
	mov	eax, DWORD PTR -536[rbp]
	mov	DWORD PTR -532[rbp], eax
	and	DWORD PTR -536[rbp], -4
	mov	rax, QWORD PTR -496[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	add	rax, 552
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -504[rbp], rax
	mov	QWORD PTR -336[rbp], 0
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	cmp	rax, QWORD PTR -328[rbp]
	jne	.L293
	mov	eax, DWORD PTR -532[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	rsi, rax
	lea	rdi, .LC40[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L280
.L293:
	nop
.L283:
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 284
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -528[rbp], eax
	mov	eax, DWORD PTR -528[rbp]
	cmp	eax, DWORD PTR -536[rbp]
	je	.L294
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 304
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 552
	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 -504[rbp]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	cmp	rax, QWORD PTR -256[rbp]
	je	.L295
	jmp	.L293
.L294:
	nop
	jmp	.L285
.L295:
	nop
.L285:
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 284
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -524[rbp], eax
	mov	eax, DWORD PTR -524[rbp]
	cmp	eax, DWORD PTR -536[rbp]
	jne	.L291
	mov	rax, QWORD PTR -496[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 552
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rdx, QWORD PTR -504[rbp]
	mov	rax, QWORD PTR -208[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	removeQ@PLT
	mov	eax, DWORD PTR -532[rbp]
	and	eax, 3
	test	eax, eax
	je	.L288
	mov	QWORD PTR -200[rbp], 3
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rdx, QWORD PTR -184[rbp]
	mov	rax, QWORD PTR -192[rbp]
	add	rax, rdx
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -541[rbp], al
	movzx	eax, BYTE PTR -541[rbp]
	mov	DWORD PTR -520[rbp], eax
	cmp	DWORD PTR -520[rbp], 0
	jne	.L288
	mov	QWORD PTR -168[rbp], 3
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 4
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	BYTE PTR [rax], 16
.L288:
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 320
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -516[rbp], eax
	cmp	DWORD PTR -516[rbp], 0
	jne	.L289
	mov	rax, QWORD PTR -504[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	complete_command@PLT
	mov	rcx, QWORD PTR -504[rbp]
	mov	rax, QWORD PTR -496[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	jmp	.L280
.L289:
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 320
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -512[rbp], eax
	cmp	DWORD PTR -512[rbp], 1
	jne	.L280
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 320
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR [rax], 2
	jmp	.L280
.L282:
.L292:
	nop
.L279:
	lea	rax, do_ida_request[rip]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 584
	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 -80[rbp]
	mov	rdi, rax
	call	rdx
	mov	rax, QWORD PTR -496[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -508[rbp], eax
	mov	eax, DWORD PTR -508[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -48[rbp], rax
	lea	rdx, hba[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, 592
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	spin_unlock_irqrestore
	mov	eax, 1
.L278:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	do_ida_intr, .-do_ida_intr
	.globl	ida_timer
	.type	ida_timer, @function
ida_timer:
.LFB58:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 80
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 624
	mov	QWORD PTR -48[rbp], rax
	mov	rdx, QWORD PTR jiffies[rip]
	mov	rax, QWORD PTR -48[rbp]
	add	rdx, 500
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 624
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	add_timer
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 656
	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
.LFE58:
	.size	ida_timer, .-ida_timer
	.globl	ida_getgeo
	.type	ida_getgeo, @function
ida_getgeo:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 224
	mov	QWORD PTR -216[rbp], rdi
	mov	QWORD PTR -224[rbp], rsi
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 24
	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 -168[rbp]
	mov	rdi, rax
	call	get_drv@PLT
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 8
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L299
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -196[rbp], eax
	mov	eax, DWORD PTR -196[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -224[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 1
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -152[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	eax, DWORD PTR [rax]
	mov	DWORD PTR -192[rbp], eax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, DWORD PTR -192[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 2
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -152[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	eax, DWORD PTR [rax]
	mov	DWORD PTR -188[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -188[rbp]
	mov	WORD PTR [rax], dx
	jmp	.L300
.L299:
	mov	rax, QWORD PTR -224[rbp]
	mov	BYTE PTR [rax], -1
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 1
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	BYTE PTR [rax], 63
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 2
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 4
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -204[rbp], eax
	mov	eax, DWORD PTR -204[rbp]
	mov	edx, eax
	imul	rdx, rdx, 85284443
	shr	rdx, 32
	sub	eax, edx
	shr	eax
	add	eax, edx
	shr	eax, 13
	mov	DWORD PTR -200[rbp], eax
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -200[rbp]
	mov	WORD PTR [rax], dx
.L300:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	ida_getgeo, .-ida_getgeo
	.globl	ida_ioctl
	.type	ida_ioctl, @function
ida_ioctl:
.LFB60:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 576
	mov	QWORD PTR -552[rbp], rdi
	mov	QWORD PTR -560[rbp], rsi
	mov	DWORD PTR -564[rbp], edx
	mov	QWORD PTR -576[rbp], rcx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -552[rbp]
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	add	rax, 16
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -488[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	add	rax, 24
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	rdi, rax
	call	get_drv@PLT
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	add	rax, 16
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 24
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rdi, rax
	call	get_host@PLT
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -384[rbp]
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	QWORD PTR -368[rbp], rax
	cmp	DWORD PTR -564[rbp], 656877608
	je	.L337
	cmp	DWORD PTR -564[rbp], 673720617
	je	.L338
	cmp	DWORD PTR -564[rbp], 690565168
	je	.L339
	cmp	DWORD PTR -564[rbp], 808464689
	je	.L340
	cmp	DWORD PTR -564[rbp], 825307698
	je	.L341
	cmp	DWORD PTR -564[rbp], 842150707
	jne	.L342
	jmp	.L336
.L337:
	nop
.L304:
	mov	rax, QWORD PTR -368[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 532
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rcx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, 24
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L316
	mov	eax, -14
	jmp	.L329
.L316:
	mov	eax, 0
	jmp	.L329
.L338:
	nop
.L306:
	mov	edi, 17
	call	capable@PLT
	mov	DWORD PTR -508[rbp], eax
	cmp	DWORD PTR -508[rbp], 0
	jne	.L318
	mov	eax, -1
	jmp	.L329
.L318:
	mov	DWORD PTR -504[rbp], 1568
	mov	eax, DWORD PTR -504[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	QWORD PTR -168[rbp], rax
	cmp	QWORD PTR -168[rbp], 0
	jne	.L319
	mov	eax, -12
	jmp	.L329
.L319:
	mov	DWORD PTR -540[rbp], -14
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rcx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -160[rbp]
	mov	edx, 1568
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_from_user
	mov	QWORD PTR -144[rbp], rax
	cmp	QWORD PTR -144[rbp], 0
	jne	.L343
	mov	QWORD PTR -136[rbp], 0
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 112
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	sub	rax, QWORD PTR -104[rbp]
	sar	rax, 3
	mov	rdx, rax
	movabs	rax, -6148914691236517205
	imul	rax, rdx
	mov	DWORD PTR -500[rbp], eax
	mov	rdx, QWORD PTR -168[rbp]
	mov	ecx, DWORD PTR -500[rbp]
	mov	rax, QWORD PTR -376[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	ida_ctlr_ioctl
	mov	DWORD PTR -540[rbp], eax
	cmp	DWORD PTR -540[rbp], 0
	jne	.L344
	mov	DWORD PTR -540[rbp], -14
	mov	rax, QWORD PTR -368[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rcx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -96[rbp]
	mov	edx, 1568
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -80[rbp], rax
	cmp	QWORD PTR -80[rbp], 0
	jne	.L345
	mov	DWORD PTR -540[rbp], 0
	jmp	.L321
.L343:
	nop
	jmp	.L321
.L344:
	nop
	jmp	.L321
.L345:
	nop
.L321:
	mov	rax, QWORD PTR -168[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, DWORD PTR -540[rbp]
	jmp	.L329
.L339:
	nop
.L308:
	cmp	QWORD PTR -576[rbp], 0
	jne	.L324
	mov	eax, -22
	jmp	.L329
.L324:
	mov	rax, QWORD PTR -376[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 32
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -512[rbp], eax
	mov	rax, QWORD PTR -576[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rdx, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR -512[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	put_user
	mov	eax, 0
	jmp	.L329
.L340:
	nop
.L310:
	mov	rax, QWORD PTR -552[rbp]
	mov	rdi, rax
	call	iminor
	mov	DWORD PTR -520[rbp], eax
	cmp	DWORD PTR -520[rbp], 0
	je	.L325
	mov	eax, -6
	jmp	.L329
.L325:
	mov	rax, QWORD PTR -376[rbp]
	mov	rdi, rax
	call	revalidate_allvol
	mov	DWORD PTR -516[rbp], eax
	mov	eax, DWORD PTR -516[rbp]
	jmp	.L329
.L341:
	nop
.L312:
	cmp	QWORD PTR -576[rbp], 0
	jne	.L326
	mov	eax, -22
	jmp	.L329
.L326:
	mov	DWORD PTR -532[rbp], 1536
	mov	DWORD PTR -528[rbp], 131072
	mov	eax, DWORD PTR -528[rbp]
	or	eax, DWORD PTR -532[rbp]
	mov	DWORD PTR -524[rbp], eax
	mov	rax, QWORD PTR -576[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rdx, QWORD PTR -216[rbp]
	mov	eax, DWORD PTR -524[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	put_user
	mov	eax, 0
	jmp	.L329
.L336:
.L314:
	cmp	QWORD PTR -576[rbp], 0
	jne	.L327
	mov	eax, -22
	jmp	.L329
.L327:
	lea	rax, -16[rbp]
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	add	rax, 48
	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	rax, QWORD PTR [rax]
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	movzx	edx, BYTE PTR [rax]
	mov	rax, QWORD PTR -360[rbp]
	mov	BYTE PTR [rax], dl
	lea	rax, -16[rbp]
	add	rax, 1
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 48
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 8
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -536[rbp], eax
	mov	rax, QWORD PTR -320[rbp]
	mov	edx, DWORD PTR -536[rbp]
	mov	BYTE PTR [rax], dl
	lea	rax, -16[rbp]
	add	rax, 4
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 56
	mov	QWORD PTR -256[rbp], rax
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -272[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -576[rbp]
	mov	QWORD PTR -248[rbp], rax
	lea	rax, -16[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rcx, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, 8
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -232[rbp], rax
	cmp	QWORD PTR -232[rbp], 0
	je	.L328
	mov	eax, -14
	jmp	.L329
.L328:
	mov	eax, 0
	jmp	.L329
.L342:
	nop
.L315:
	mov	eax, -22
.L329:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L330
	call	__stack_chk_fail@PLT
.L330:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	ida_ioctl, .-ida_ioctl
	.globl	ida_ctlr_ioctl
	.type	ida_ctlr_ioctl, @function
ida_ctlr_ioctl:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 2264
	.cfi_offset 3, -24
	mov	QWORD PTR -2248[rbp], rdi
	mov	DWORD PTR -2252[rbp], esi
	mov	QWORD PTR -2264[rbp], rdx
	mov	rax, QWORD PTR -2248[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2236[rbp], eax
	mov	QWORD PTR -2144[rbp], 0
	mov	rax, QWORD PTR -2248[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	cmd_alloc
	mov	QWORD PTR -2136[rbp], rax
	mov	QWORD PTR -2128[rbp], 0
	mov	rax, QWORD PTR -2128[rbp]
	mov	QWORD PTR -2120[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -2112[rbp], rax
	mov	rax, QWORD PTR -2112[rbp]
	cmp	rax, QWORD PTR -2120[rbp]
	jne	.L347
	mov	eax, -12
	jmp	.L348
.L347:
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -2104[rbp], rax
	mov	rax, QWORD PTR -2104[rbp]
	add	rax, 288
	mov	QWORD PTR -2096[rbp], rax
	mov	rax, QWORD PTR -2096[rbp]
	mov	edx, DWORD PTR -2236[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -2088[rbp], rax
	mov	rax, QWORD PTR -2088[rbp]
	add	rax, 2
	mov	QWORD PTR -2080[rbp], rax
	mov	rax, QWORD PTR -2080[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -2240[rbp], al
	movzx	eax, BYTE PTR -2240[rbp]
	mov	DWORD PTR -2232[rbp], eax
	mov	eax, DWORD PTR -2232[rbp]
	and	eax, 128
	test	eax, eax
	je	.L349
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -2072[rbp], rax
	mov	rax, QWORD PTR -2072[rbp]
	add	rax, 2
	mov	QWORD PTR -2064[rbp], rax
	mov	rax, QWORD PTR -2064[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -2239[rbp], al
	movzx	eax, BYTE PTR -2239[rbp]
	mov	DWORD PTR -2228[rbp], eax
	mov	eax, DWORD PTR -2228[rbp]
	and	al, 127
	mov	DWORD PTR -2224[rbp], eax
	mov	eax, DWORD PTR -2224[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2136[rbp]
	mov	BYTE PTR [rax], dl
	jmp	.L350
.L349:
	mov	eax, DWORD PTR -2252[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2136[rbp]
	mov	BYTE PTR [rax], dl
.L350:
	mov	QWORD PTR -2056[rbp], 2
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -2048[rbp], rax
	mov	rdx, QWORD PTR -2048[rbp]
	mov	rax, QWORD PTR -2056[rbp]
	add	rax, rdx
	mov	QWORD PTR -2040[rbp], rax
	mov	QWORD PTR -2032[rbp], 68
	mov	rax, QWORD PTR -2040[rbp]
	mov	rdx, QWORD PTR -2032[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -2024[rbp], rax
	mov	rax, QWORD PTR -2024[rbp]
	add	rax, 276
	mov	QWORD PTR -2016[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -2008[rbp], rax
	mov	rax, QWORD PTR -2008[rbp]
	add	rax, 276
	mov	QWORD PTR -2000[rbp], rax
	mov	rax, QWORD PTR -2000[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2220[rbp], eax
	mov	eax, DWORD PTR -2220[rbp]
	mov	QWORD PTR -1992[rbp], rax
	mov	rax, QWORD PTR -1992[rbp]
	add	rax, 272
	mov	QWORD PTR -1984[rbp], rax
	mov	rax, QWORD PTR -2016[rbp]
	mov	rdx, QWORD PTR -1984[rbp]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -1976[rbp], 2
	mov	rax, QWORD PTR -1976[rbp]
	add	rax, 4
	mov	QWORD PTR -1968[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1960[rbp], rax
	mov	rdx, QWORD PTR -1960[rbp]
	mov	rax, QWORD PTR -1968[rbp]
	add	rax, rdx
	mov	QWORD PTR -1952[rbp], rax
	mov	rax, QWORD PTR -1952[rbp]
	mov	rdx, QWORD PTR -2264[rbp]
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	mov	QWORD PTR -1944[rbp], 4
	mov	rax, QWORD PTR -1944[rbp]
	add	rax, 4
	mov	QWORD PTR -1936[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1928[rbp], rax
	mov	rdx, QWORD PTR -1928[rbp]
	mov	rax, QWORD PTR -1936[rbp]
	add	rax, rdx
	mov	QWORD PTR -1920[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1912[rbp], rax
	mov	rax, QWORD PTR -1912[rbp]
	add	rax, 4
	mov	QWORD PTR -1904[rbp], rax
	mov	rdx, QWORD PTR -1904[rbp]
	mov	rax, QWORD PTR -1920[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -1896[rbp], 8
	mov	rax, QWORD PTR -1896[rbp]
	add	rax, 4
	mov	QWORD PTR -1888[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1880[rbp], rax
	mov	rdx, QWORD PTR -1880[rbp]
	mov	rax, QWORD PTR -1888[rbp]
	add	rax, rdx
	mov	QWORD PTR -1872[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1864[rbp], rax
	mov	rax, QWORD PTR -1864[rbp]
	add	rax, 8
	mov	QWORD PTR -1856[rbp], rax
	mov	rdx, QWORD PTR -1856[rbp]
	mov	rax, QWORD PTR -1872[rbp]
	movzx	edx, WORD PTR [rdx]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1848[rbp], rax
	mov	rax, QWORD PTR -1848[rbp]
	add	rax, 320
	mov	QWORD PTR -1840[rbp], rax
	mov	rax, QWORD PTR -1840[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -2264[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -2238[rbp], al
	cmp	BYTE PTR -2238[rbp], -111
	je	.L402
	cmp	BYTE PTR -2238[rbp], 32
	je	.L403
	cmp	BYTE PTR -2238[rbp], -10
	je	.L404
	cmp	BYTE PTR -2238[rbp], -88
	je	.L405
	cmp	BYTE PTR -2238[rbp], 48
	je	.L406
	cmp	BYTE PTR -2238[rbp], 49
	je	.L407
	cmp	BYTE PTR -2238[rbp], 65
	je	.L408
	cmp	BYTE PTR -2238[rbp], -46
	je	.L409
	cmp	BYTE PTR -2238[rbp], -9
	jne	.L410
	jmp	.L373
.L402:
	nop
.L352:
	mov	QWORD PTR -984[rbp], 0
	mov	rax, QWORD PTR -984[rbp]
	add	rax, 8
	mov	QWORD PTR -976[rbp], rax
	mov	rax, QWORD PTR -976[rbp]
	add	rax, 16
	mov	QWORD PTR -968[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -960[rbp], rax
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -968[rbp]
	add	rax, rdx
	mov	QWORD PTR -952[rbp], rax
	mov	rax, QWORD PTR -952[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2188[rbp], eax
	mov	eax, DWORD PTR -2188[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -2144[rbp], rax
	cmp	QWORD PTR -2144[rbp], 0
	jne	.L364
	mov	DWORD PTR -2200[rbp], -12
	mov	rcx, QWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -2248[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, DWORD PTR -2200[rbp]
	jmp	.L348
.L364:
	mov	QWORD PTR -944[rbp], 0
	mov	rax, QWORD PTR -944[rbp]
	add	rax, 16
	mov	QWORD PTR -936[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -928[rbp], rax
	mov	rdx, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR -936[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	QWORD PTR -904[rbp], 0
	mov	rax, QWORD PTR -904[rbp]
	add	rax, 8
	mov	QWORD PTR -896[rbp], rax
	mov	rax, QWORD PTR -896[rbp]
	add	rax, 16
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -880[rbp], rax
	mov	rdx, QWORD PTR -880[rbp]
	mov	rax, QWORD PTR -888[rbp]
	add	rax, rdx
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2184[rbp], eax
	mov	eax, DWORD PTR -2184[rbp]
	mov	QWORD PTR -864[rbp], rax
	mov	rdx, QWORD PTR -864[rbp]
	mov	rcx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -2144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_from_user
	mov	QWORD PTR -856[rbp], rax
	cmp	QWORD PTR -856[rbp], 0
	je	.L365
	mov	rax, QWORD PTR -2144[rbp]
	mov	QWORD PTR -536[rbp], rax
	mov	rax, QWORD PTR -536[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rcx, QWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -2248[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, -14
	jmp	.L348
.L365:
	mov	QWORD PTR -848[rbp], 4
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 4
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -832[rbp], rax
	mov	rdx, QWORD PTR -832[rbp]
	mov	rax, QWORD PTR -840[rbp]
	add	rax, rdx
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 48
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	add	rax, 532
	mov	QWORD PTR -784[rbp], rax
	mov	rax, QWORD PTR -784[rbp]
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -776[rbp]
	mov	QWORD PTR -768[rbp], rax
	mov	DWORD PTR -2180[rbp], 1568
	mov	rbx, QWORD PTR -824[rbp]
	mov	edx, DWORD PTR -2180[rbp]
	mov	rsi, QWORD PTR -768[rbp]
	mov	rax, QWORD PTR -800[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_map_single@PLT
	mov	DWORD PTR [rbx], eax
	mov	QWORD PTR -760[rbp], 0
	mov	rax, QWORD PTR -760[rbp]
	add	rax, 12
	mov	QWORD PTR -752[rbp], rax
	mov	rax, QWORD PTR -752[rbp]
	add	rax, 4
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -736[rbp], rax
	mov	rdx, QWORD PTR -736[rbp]
	mov	rax, QWORD PTR -744[rbp]
	add	rax, rdx
	mov	QWORD PTR -728[rbp], rax
	mov	QWORD PTR -720[rbp], 0
	mov	rax, QWORD PTR -720[rbp]
	add	rax, 8
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -712[rbp]
	add	rax, 16
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -696[rbp], rax
	mov	rdx, QWORD PTR -696[rbp]
	mov	rax, QWORD PTR -704[rbp]
	add	rax, rdx
	mov	QWORD PTR -688[rbp], rax
	mov	rdx, QWORD PTR -688[rbp]
	mov	rax, QWORD PTR -728[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -680[rbp], 0
	mov	rax, QWORD PTR -680[rbp]
	add	rax, 4
	mov	QWORD PTR -672[rbp], rax
	mov	rax, QWORD PTR -672[rbp]
	add	rax, 12
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -664[rbp]
	add	rax, 4
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -648[rbp], rax
	mov	rdx, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR -656[rbp]
	add	rax, rdx
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	add	rax, 48
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -616[rbp], rax
	mov	QWORD PTR -608[rbp], 0
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 12
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	add	rax, 4
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rdx, QWORD PTR -584[rbp]
	mov	rax, QWORD PTR -592[rbp]
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2176[rbp], eax
	mov	rbx, QWORD PTR -640[rbp]
	mov	edx, DWORD PTR -2176[rbp]
	mov	rsi, QWORD PTR -2144[rbp]
	mov	rax, QWORD PTR -616[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_map_single@PLT
	mov	DWORD PTR [rbx], eax
	mov	QWORD PTR -568[rbp], 10
	mov	rax, QWORD PTR -568[rbp]
	add	rax, 4
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -552[rbp], rax
	mov	rdx, QWORD PTR -552[rbp]
	mov	rax, QWORD PTR -560[rbp]
	add	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	mov	BYTE PTR [rax], 1
	jmp	.L366
.L354:
.L367:
.L403:
	nop
	jmp	.L368
.L404:
	nop
	jmp	.L368
.L405:
	nop
.L368:
	mov	QWORD PTR -1248[rbp], 0
	mov	rax, QWORD PTR -1248[rbp]
	add	rax, 8
	mov	QWORD PTR -1240[rbp], rax
	mov	rax, QWORD PTR -1240[rbp]
	add	rax, 16
	mov	QWORD PTR -1232[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1224[rbp], rax
	mov	rdx, QWORD PTR -1224[rbp]
	mov	rax, QWORD PTR -1232[rbp]
	add	rax, rdx
	mov	QWORD PTR -1216[rbp], rax
	mov	rax, QWORD PTR -1216[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2196[rbp], eax
	mov	eax, DWORD PTR -2196[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -2144[rbp], rax
	cmp	QWORD PTR -2144[rbp], 0
	jne	.L369
	mov	DWORD PTR -2200[rbp], -12
	mov	rcx, QWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -2248[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, DWORD PTR -2200[rbp]
	jmp	.L348
.L369:
	mov	QWORD PTR -1208[rbp], 0
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 12
	mov	QWORD PTR -1200[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	add	rax, 4
	mov	QWORD PTR -1192[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1184[rbp], rax
	mov	rdx, QWORD PTR -1184[rbp]
	mov	rax, QWORD PTR -1192[rbp]
	add	rax, rdx
	mov	QWORD PTR -1176[rbp], rax
	mov	QWORD PTR -1168[rbp], 0
	mov	rax, QWORD PTR -1168[rbp]
	add	rax, 8
	mov	QWORD PTR -1160[rbp], rax
	mov	rax, QWORD PTR -1160[rbp]
	add	rax, 16
	mov	QWORD PTR -1152[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1144[rbp], rax
	mov	rdx, QWORD PTR -1144[rbp]
	mov	rax, QWORD PTR -1152[rbp]
	add	rax, rdx
	mov	QWORD PTR -1136[rbp], rax
	mov	rdx, QWORD PTR -1136[rbp]
	mov	rax, QWORD PTR -1176[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -1128[rbp], 0
	mov	rax, QWORD PTR -1128[rbp]
	add	rax, 4
	mov	QWORD PTR -1120[rbp], rax
	mov	rax, QWORD PTR -1120[rbp]
	add	rax, 12
	mov	QWORD PTR -1112[rbp], rax
	mov	rax, QWORD PTR -1112[rbp]
	add	rax, 4
	mov	QWORD PTR -1104[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1096[rbp], rax
	mov	rdx, QWORD PTR -1096[rbp]
	mov	rax, QWORD PTR -1104[rbp]
	add	rax, rdx
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -1080[rbp], rax
	mov	rax, QWORD PTR -1080[rbp]
	add	rax, 48
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1072[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1064[rbp], rax
	mov	QWORD PTR -1056[rbp], 0
	mov	rax, QWORD PTR -1056[rbp]
	add	rax, 12
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 4
	mov	QWORD PTR -1040[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1032[rbp], rax
	mov	rdx, QWORD PTR -1032[rbp]
	mov	rax, QWORD PTR -1040[rbp]
	add	rax, rdx
	mov	QWORD PTR -1024[rbp], rax
	mov	rax, QWORD PTR -1024[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2192[rbp], eax
	mov	rbx, QWORD PTR -1088[rbp]
	mov	edx, DWORD PTR -2192[rbp]
	mov	rsi, QWORD PTR -2144[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_map_single@PLT
	mov	DWORD PTR [rbx], eax
	mov	QWORD PTR -1016[rbp], 10
	mov	rax, QWORD PTR -1016[rbp]
	add	rax, 4
	mov	QWORD PTR -1008[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1000[rbp], rax
	mov	rdx, QWORD PTR -1000[rbp]
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, rdx
	mov	QWORD PTR -992[rbp], rax
	mov	rax, QWORD PTR -992[rbp]
	mov	BYTE PTR [rax], 1
	jmp	.L366
.L358:
.L370:
.L371:
.L372:
.L406:
	nop
	jmp	.L373
.L407:
	nop
	jmp	.L373
.L408:
	nop
	jmp	.L373
.L409:
	nop
.L373:
	mov	QWORD PTR -1616[rbp], 0
	mov	rax, QWORD PTR -1616[rbp]
	add	rax, 8
	mov	QWORD PTR -1608[rbp], rax
	mov	rax, QWORD PTR -1608[rbp]
	add	rax, 16
	mov	QWORD PTR -1600[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1592[rbp], rax
	mov	rdx, QWORD PTR -1592[rbp]
	mov	rax, QWORD PTR -1600[rbp]
	add	rax, rdx
	mov	QWORD PTR -1584[rbp], rax
	mov	rax, QWORD PTR -1584[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2212[rbp], eax
	mov	eax, DWORD PTR -2212[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -2144[rbp], rax
	cmp	QWORD PTR -2144[rbp], 0
	jne	.L374
	mov	DWORD PTR -2200[rbp], -12
	mov	rcx, QWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -2248[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, DWORD PTR -2200[rbp]
	jmp	.L348
.L374:
	mov	QWORD PTR -1576[rbp], 0
	mov	rax, QWORD PTR -1576[rbp]
	add	rax, 16
	mov	QWORD PTR -1568[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1560[rbp], rax
	mov	rdx, QWORD PTR -1560[rbp]
	mov	rax, QWORD PTR -1568[rbp]
	add	rax, rdx
	mov	QWORD PTR -1552[rbp], rax
	mov	rax, QWORD PTR -1552[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1544[rbp], rax
	mov	QWORD PTR -1536[rbp], 0
	mov	rax, QWORD PTR -1536[rbp]
	add	rax, 8
	mov	QWORD PTR -1528[rbp], rax
	mov	rax, QWORD PTR -1528[rbp]
	add	rax, 16
	mov	QWORD PTR -1520[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1512[rbp], rax
	mov	rdx, QWORD PTR -1512[rbp]
	mov	rax, QWORD PTR -1520[rbp]
	add	rax, rdx
	mov	QWORD PTR -1504[rbp], rax
	mov	rax, QWORD PTR -1504[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2208[rbp], eax
	mov	eax, DWORD PTR -2208[rbp]
	mov	QWORD PTR -1496[rbp], rax
	mov	rdx, QWORD PTR -1496[rbp]
	mov	rcx, QWORD PTR -1544[rbp]
	mov	rax, QWORD PTR -2144[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_from_user
	mov	QWORD PTR -1488[rbp], rax
	cmp	QWORD PTR -1488[rbp], 0
	je	.L375
	mov	rax, QWORD PTR -2144[rbp]
	mov	QWORD PTR -1256[rbp], rax
	mov	rax, QWORD PTR -1256[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rcx, QWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -2248[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, -14
	jmp	.L348
.L375:
	mov	QWORD PTR -1480[rbp], 0
	mov	rax, QWORD PTR -1480[rbp]
	add	rax, 12
	mov	QWORD PTR -1472[rbp], rax
	mov	rax, QWORD PTR -1472[rbp]
	add	rax, 4
	mov	QWORD PTR -1464[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1456[rbp], rax
	mov	rdx, QWORD PTR -1456[rbp]
	mov	rax, QWORD PTR -1464[rbp]
	add	rax, rdx
	mov	QWORD PTR -1448[rbp], rax
	mov	QWORD PTR -1440[rbp], 0
	mov	rax, QWORD PTR -1440[rbp]
	add	rax, 8
	mov	QWORD PTR -1432[rbp], rax
	mov	rax, QWORD PTR -1432[rbp]
	add	rax, 16
	mov	QWORD PTR -1424[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1416[rbp], rax
	mov	rdx, QWORD PTR -1416[rbp]
	mov	rax, QWORD PTR -1424[rbp]
	add	rax, rdx
	mov	QWORD PTR -1408[rbp], rax
	mov	rdx, QWORD PTR -1408[rbp]
	mov	rax, QWORD PTR -1448[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -1400[rbp], 0
	mov	rax, QWORD PTR -1400[rbp]
	add	rax, 4
	mov	QWORD PTR -1392[rbp], rax
	mov	rax, QWORD PTR -1392[rbp]
	add	rax, 12
	mov	QWORD PTR -1384[rbp], rax
	mov	rax, QWORD PTR -1384[rbp]
	add	rax, 4
	mov	QWORD PTR -1376[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1368[rbp], rax
	mov	rdx, QWORD PTR -1368[rbp]
	mov	rax, QWORD PTR -1376[rbp]
	add	rax, rdx
	mov	QWORD PTR -1360[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -1352[rbp], rax
	mov	rax, QWORD PTR -1352[rbp]
	add	rax, 48
	mov	QWORD PTR -1344[rbp], rax
	mov	rax, QWORD PTR -1344[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1336[rbp], rax
	mov	QWORD PTR -1328[rbp], 0
	mov	rax, QWORD PTR -1328[rbp]
	add	rax, 12
	mov	QWORD PTR -1320[rbp], rax
	mov	rax, QWORD PTR -1320[rbp]
	add	rax, 4
	mov	QWORD PTR -1312[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1304[rbp], rax
	mov	rdx, QWORD PTR -1304[rbp]
	mov	rax, QWORD PTR -1312[rbp]
	add	rax, rdx
	mov	QWORD PTR -1296[rbp], rax
	mov	rax, QWORD PTR -1296[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2204[rbp], eax
	mov	rbx, QWORD PTR -1360[rbp]
	mov	edx, DWORD PTR -2204[rbp]
	mov	rsi, QWORD PTR -2144[rbp]
	mov	rax, QWORD PTR -1336[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_map_single@PLT
	mov	DWORD PTR [rbx], eax
	mov	QWORD PTR -1288[rbp], 10
	mov	rax, QWORD PTR -1288[rbp]
	add	rax, 4
	mov	QWORD PTR -1280[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1272[rbp], rax
	mov	rdx, QWORD PTR -1272[rbp]
	mov	rax, QWORD PTR -1280[rbp]
	add	rax, rdx
	mov	QWORD PTR -1264[rbp], rax
	mov	rax, QWORD PTR -1264[rbp]
	mov	BYTE PTR [rax], 1
	jmp	.L366
.L410:
	nop
.L363:
	mov	QWORD PTR -1832[rbp], 0
	mov	rax, QWORD PTR -1832[rbp]
	add	rax, 12
	mov	QWORD PTR -1824[rbp], rax
	mov	rax, QWORD PTR -1824[rbp]
	add	rax, 4
	mov	QWORD PTR -1816[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1808[rbp], rax
	mov	rdx, QWORD PTR -1808[rbp]
	mov	rax, QWORD PTR -1816[rbp]
	add	rax, rdx
	mov	QWORD PTR -1800[rbp], rax
	mov	rax, QWORD PTR -1800[rbp]
	mov	DWORD PTR [rax], 1036
	mov	QWORD PTR -1792[rbp], 0
	mov	rax, QWORD PTR -1792[rbp]
	add	rax, 4
	mov	QWORD PTR -1784[rbp], rax
	mov	rax, QWORD PTR -1784[rbp]
	add	rax, 12
	mov	QWORD PTR -1776[rbp], rax
	mov	rax, QWORD PTR -1776[rbp]
	add	rax, 4
	mov	QWORD PTR -1768[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1760[rbp], rax
	mov	rdx, QWORD PTR -1760[rbp]
	mov	rax, QWORD PTR -1768[rbp]
	add	rax, rdx
	mov	QWORD PTR -1752[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -1744[rbp], rax
	mov	rax, QWORD PTR -1744[rbp]
	add	rax, 48
	mov	QWORD PTR -1736[rbp], rax
	mov	rax, QWORD PTR -1736[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1728[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -1720[rbp], rax
	mov	rax, QWORD PTR -1720[rbp]
	add	rax, 532
	mov	QWORD PTR -1712[rbp], rax
	mov	rax, QWORD PTR -1712[rbp]
	mov	QWORD PTR -1704[rbp], rax
	mov	rax, QWORD PTR -1704[rbp]
	mov	QWORD PTR -1696[rbp], rax
	mov	QWORD PTR -1688[rbp], 0
	mov	rax, QWORD PTR -1688[rbp]
	add	rax, 12
	mov	QWORD PTR -1680[rbp], rax
	mov	rax, QWORD PTR -1680[rbp]
	add	rax, 4
	mov	QWORD PTR -1672[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1664[rbp], rax
	mov	rdx, QWORD PTR -1664[rbp]
	mov	rax, QWORD PTR -1672[rbp]
	add	rax, rdx
	mov	QWORD PTR -1656[rbp], rax
	mov	rax, QWORD PTR -1656[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2216[rbp], eax
	mov	rbx, QWORD PTR -1752[rbp]
	mov	edx, DWORD PTR -2216[rbp]
	mov	rsi, QWORD PTR -1696[rbp]
	mov	rax, QWORD PTR -1728[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_map_single@PLT
	mov	DWORD PTR [rbx], eax
	mov	QWORD PTR -1648[rbp], 10
	mov	rax, QWORD PTR -1648[rbp]
	add	rax, 4
	mov	QWORD PTR -1640[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -1632[rbp], rax
	mov	rdx, QWORD PTR -1632[rbp]
	mov	rax, QWORD PTR -1640[rbp]
	add	rax, rdx
	mov	QWORD PTR -1624[rbp], rax
	mov	rax, QWORD PTR -1624[rbp]
	mov	BYTE PTR [rax], 1
.L366:
	mov	eax, DWORD PTR -2236[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -528[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -528[rbp]
	add	rax, rdx
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	add	rax, 592
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	mov	QWORD PTR -488[rbp], rax
	mov	rdx, QWORD PTR -480[rbp]
	mov	rax, QWORD PTR -488[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	spin_lock_irqsave
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	add	rax, 544
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	mov	QWORD PTR -456[rbp], rax
	mov	rdx, QWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -456[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	addQ@PLT
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	add	rax, 600
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	add	rax, 600
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2172[rbp], eax
	mov	rax, QWORD PTR -440[rbp]
	mov	edx, DWORD PTR -2172[rbp]
	add	edx, 1
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -2248[rbp]
	mov	rdi, rax
	call	start_io
	mov	eax, DWORD PTR -2236[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -416[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -416[rbp]
	add	rax, rdx
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	add	rax, 592
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -384[rbp]
	mov	QWORD PTR -376[rbp], rax
	mov	rdx, QWORD PTR -480[rbp]
	mov	rax, QWORD PTR -376[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	spin_unlock_irqrestore
.L376:
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	add	rax, 320
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2168[rbp], eax
	cmp	DWORD PTR -2168[rbp], 2
	je	.L411
	call	schedule
	jmp	.L376
.L411:
	nop
.L378:
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	add	rax, 48
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -336[rbp], rax
	mov	QWORD PTR -328[rbp], 0
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 4
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 4
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rdx, QWORD PTR -296[rbp]
	mov	rax, QWORD PTR -304[rbp]
	add	rax, rdx
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2164[rbp], eax
	mov	QWORD PTR -280[rbp], 0
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 12
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 4
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rdx
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2160[rbp], eax
	mov	edx, DWORD PTR -2160[rbp]
	mov	esi, DWORD PTR -2164[rbp]
	mov	rax, QWORD PTR -336[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_unmap_single@PLT
	mov	rax, QWORD PTR -2264[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -2237[rbp], al
	cmp	BYTE PTR -2237[rbp], -111
	je	.L412
	cmp	BYTE PTR -2237[rbp], 32
	je	.L413
	cmp	BYTE PTR -2237[rbp], 65
	je	.L414
	cmp	BYTE PTR -2237[rbp], -88
	je	.L415
	cmp	BYTE PTR -2237[rbp], -10
	je	.L416
	cmp	BYTE PTR -2237[rbp], 48
	je	.L417
	cmp	BYTE PTR -2237[rbp], 49
	je	.L418
	cmp	BYTE PTR -2237[rbp], -46
	je	.L419
	cmp	BYTE PTR -2237[rbp], -9
	jne	.L420
	jmp	.L397
.L412:
	nop
.L380:
	mov	rax, QWORD PTR -2248[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 48
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -224[rbp], rax
	mov	QWORD PTR -216[rbp], 4
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 4
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	rdx, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2156[rbp], eax
	mov	DWORD PTR -2152[rbp], 1568
	mov	edx, DWORD PTR -2152[rbp]
	mov	esi, DWORD PTR -2156[rbp]
	mov	rax, QWORD PTR -224[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_unmap_single@PLT
	jmp	.L394
.L382:
.L392:
.L393:
.L413:
	nop
	jmp	.L394
.L414:
	nop
	jmp	.L394
.L415:
	nop
	jmp	.L394
.L416:
	nop
.L394:
	mov	QWORD PTR -184[rbp], 0
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 16
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rdx, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -2144[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	QWORD PTR -136[rbp], 0
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 8
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 16
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -2148[rbp], eax
	mov	eax, DWORD PTR -2148[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	rsi, rcx
	mov	rdi, rax
	call	copy_to_user
	mov	QWORD PTR -88[rbp], rax
	cmp	QWORD PTR -88[rbp], 0
	je	.L421
	mov	rax, QWORD PTR -2144[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	eax, -14
	jmp	.L348
.L387:
.L395:
.L396:
.L417:
	nop
	jmp	.L397
.L418:
	nop
	jmp	.L397
.L419:
	nop
	jmp	.L397
.L421:
	nop
.L397:
	mov	rax, QWORD PTR -2144[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	kfree@PLT
	jmp	.L398
.L391:
.L420:
	nop
.L398:
	mov	rax, QWORD PTR -2264[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 1
	mov	QWORD PTR -56[rbp], rax
	mov	QWORD PTR -48[rbp], 3
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 4
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -2136[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rdx, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -56[rbp]
	movzx	edx, BYTE PTR [rdx]
	mov	BYTE PTR [rax], dl
	mov	rcx, QWORD PTR -2136[rbp]
	mov	rax, QWORD PTR -2248[rbp]
	mov	edx, 0
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, 0
.L348:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	ida_ctlr_ioctl, .-ida_ctlr_ioctl
	.globl	cmd_alloc
	.type	cmd_alloc, @function
cmd_alloc:
.LFB62:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 352
	mov	QWORD PTR -344[rbp], rdi
	mov	DWORD PTR -348[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	cmp	DWORD PTR -348[rbp], 0
	jne	.L432
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 48
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -88[rbp], rax
	mov	DWORD PTR -304[rbp], 328
	lea	rdx, -336[rbp]
	mov	ecx, DWORD PTR -304[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	pci_alloc_consistent@PLT
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	QWORD PTR -72[rbp], 0
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	cmp	rax, QWORD PTR -64[rbp]
	jne	.L424
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	jmp	.L429
.L432:
	nop
.L423:
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 576
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	esi, 128
	mov	rdi, rax
	call	find_first_zero_bit@PLT
	mov	DWORD PTR -332[rbp], eax
	cmp	DWORD PTR -332[rbp], 128
	jne	.L426
	mov	QWORD PTR -112[rbp], 0
	mov	rax, QWORD PTR -112[rbp]
	jmp	.L429
.L426:
	mov	eax, DWORD PTR -332[rbp]
	and	eax, 31
	mov	DWORD PTR -328[rbp], eax
	mov	eax, DWORD PTR -332[rbp]
	lea	edx, 31[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 5
	mov	DWORD PTR -324[rbp], eax
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 576
	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 -324[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	mov	QWORD PTR -232[rbp], rax
	mov	rdx, QWORD PTR -232[rbp]
	mov	eax, DWORD PTR -328[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	test_and_set_bit@PLT
	mov	DWORD PTR -320[rbp], eax
	cmp	DWORD PTR -320[rbp], 0
	setne	al
	movzx	eax, al
	mov	DWORD PTR -316[rbp], eax
	cmp	DWORD PTR -316[rbp], 0
	je	.L433
	jmp	.L432
.L433:
	nop
.L428:
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 560
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -208[rbp], rax
	mov	eax, DWORD PTR -332[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 6
	mov	rdx, rax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, rdx
	mov	QWORD PTR -296[rbp], rax
	lea	rax, -336[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	eax, DWORD PTR -332[rbp]
	cdqe
	mov	QWORD PTR -192[rbp], rax
	mov	rdx, QWORD PTR -192[rbp]
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	sal	rax, 3
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 568
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -312[rbp], eax
	mov	eax, DWORD PTR -312[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rdx, QWORD PTR -160[rbp]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -200[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 612
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 612
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -308[rbp], eax
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR -308[rbp]
	add	edx, 1
	mov	DWORD PTR [rax], edx
.L424:
	mov	rax, QWORD PTR -296[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	DWORD PTR -300[rbp], 328
	mov	edx, DWORD PTR -300[rbp]
	mov	rax, QWORD PTR -40[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -296[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 284
	mov	QWORD PTR -24[rbp], rax
	lea	rax, -336[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -296[rbp]
.L429:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L430
	call	__stack_chk_fail@PLT
.L430:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	cmd_alloc, .-cmd_alloc
	.globl	cmd_free
	.type	cmd_free, @function
cmd_free:
.LFB63:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -184[rbp], rdi
	mov	QWORD PTR -192[rbp], rsi
	mov	DWORD PTR -196[rbp], edx
	cmp	DWORD PTR -196[rbp], 0
	jne	.L435
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 48
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -32[rbp], rax
	mov	DWORD PTR -152[rbp], 328
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 284
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -148[rbp], eax
	mov	ecx, DWORD PTR -148[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	esi, DWORD PTR -152[rbp]
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	pci_free_consistent@PLT
	jmp	.L434
.L435:
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 560
	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 -192[rbp]
	sub	rax, QWORD PTR -128[rbp]
	sar	rax, 6
	mov	rdx, rax
	movabs	rax, -3689348814741910323
	imul	rax, rdx
	mov	DWORD PTR -168[rbp], eax
	mov	eax, DWORD PTR -168[rbp]
	and	eax, 31
	mov	DWORD PTR -164[rbp], eax
	mov	eax, DWORD PTR -168[rbp]
	lea	edx, 31[rax]
	test	eax, eax
	cmovs	eax, edx
	sar	eax, 5
	mov	DWORD PTR -160[rbp], eax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 576
	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 -160[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rdx, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR -164[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	clear_bit@PLT
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 616
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 616
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -156[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	edx, DWORD PTR -156[rbp]
	add	edx, 1
	mov	DWORD PTR [rax], edx
	nop
.L434:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	cmd_free, .-cmd_free
	.section	.rodata
	.align 8
.LC41:
	.string	"<4>cpqarray ida%d: idaSendPciCmd FIFO full, waiting!\n"
	.align 8
.LC42:
	.string	"<4>cpqarray ida%d: idaSendPciCmd Invalid command list address returned! (%08lx)\n"
	.align 8
.LC43:
	.string	"<4>cpqarray ida%d: idaSendPciCmd Timeout out, No command list address returned!\n"
	.align 8
.LC44:
	.string	"<4>cpqarray ida%d: idaSendPciCmd, error: Controller failed at init time cmd: 0x%x, return code = 0x%x\n"
	.text
	.globl	sendcmd
	.type	sendcmd, @function
sendcmd:
.LFB64:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1040
	mov	eax, edi
	mov	DWORD PTR -1016[rbp], esi
	mov	QWORD PTR -1024[rbp], rdx
	mov	DWORD PTR -1028[rbp], ecx
	mov	DWORD PTR -1032[rbp], r8d
	mov	DWORD PTR -1036[rbp], r9d
	mov	BYTE PTR -1012[rbp], al
	mov	eax, DWORD PTR -1016[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -936[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -936[rbp]
	add	rax, rdx
	mov	QWORD PTR -928[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -920[rbp], rax
	mov	rax, QWORD PTR -920[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	cmd_alloc
	mov	QWORD PTR -912[rbp], rax
	cmp	QWORD PTR -912[rbp], 0
	jne	.L439
	mov	eax, 1
	jmp	.L440
.L439:
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	add	rax, 288
	mov	QWORD PTR -896[rbp], rax
	mov	rax, QWORD PTR -896[rbp]
	mov	edx, DWORD PTR -1016[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR 16[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -912[rbp]
	mov	BYTE PTR [rax], dl
	mov	QWORD PTR -888[rbp], 1
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -880[rbp], rax
	mov	rdx, QWORD PTR -880[rbp]
	mov	rax, QWORD PTR -888[rbp]
	add	rax, rdx
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	mov	BYTE PTR [rax], 0
	mov	QWORD PTR -864[rbp], 2
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -856[rbp], rax
	mov	rdx, QWORD PTR -856[rbp]
	mov	rax, QWORD PTR -864[rbp]
	add	rax, rdx
	mov	QWORD PTR -848[rbp], rax
	mov	QWORD PTR -840[rbp], 68
	mov	rax, QWORD PTR -848[rbp]
	mov	rdx, QWORD PTR -840[rbp]
	mov	WORD PTR [rax], dx
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -832[rbp]
	add	rax, 276
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 276
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -996[rbp], eax
	mov	eax, DWORD PTR -996[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 272
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -824[rbp]
	mov	rdx, QWORD PTR -792[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -784[rbp], rax
	mov	rax, QWORD PTR -784[rbp]
	add	rax, 4
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -776[rbp]
	mov	WORD PTR [rax], 0
	mov	QWORD PTR -768[rbp], 3
	mov	rax, QWORD PTR -768[rbp]
	add	rax, 4
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -752[rbp], rax
	mov	rdx, QWORD PTR -752[rbp]
	mov	rax, QWORD PTR -760[rbp]
	add	rax, rdx
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	mov	BYTE PTR [rax], 0
	mov	QWORD PTR -736[rbp], 272
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -728[rbp], rax
	mov	rdx, QWORD PTR -728[rbp]
	mov	rax, QWORD PTR -736[rbp]
	add	rax, rdx
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -720[rbp]
	mov	DWORD PTR [rax], 0
	mov	QWORD PTR -712[rbp], 10
	mov	rax, QWORD PTR -712[rbp]
	add	rax, 4
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -696[rbp], rax
	mov	rdx, QWORD PTR -696[rbp]
	mov	rax, QWORD PTR -704[rbp]
	add	rax, rdx
	mov	QWORD PTR -688[rbp], rax
	mov	rax, QWORD PTR -688[rbp]
	mov	BYTE PTR [rax], 1
	mov	QWORD PTR -680[rbp], 11
	mov	rax, QWORD PTR -680[rbp]
	add	rax, 4
	mov	QWORD PTR -672[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -664[rbp], rax
	mov	rdx, QWORD PTR -664[rbp]
	mov	rax, QWORD PTR -672[rbp]
	add	rax, rdx
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -656[rbp]
	mov	BYTE PTR [rax], 0
	cmp	DWORD PTR -1028[rbp], 0
	jne	.L441
	mov	QWORD PTR -608[rbp], 0
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 12
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	add	rax, 4
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rdx, QWORD PTR -584[rbp]
	mov	rax, QWORD PTR -592[rbp]
	add	rax, rdx
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	mov	DWORD PTR [rax], 512
	jmp	.L442
.L441:
	mov	QWORD PTR -648[rbp], 0
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 12
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -640[rbp]
	add	rax, 4
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -624[rbp], rax
	mov	rdx, QWORD PTR -624[rbp]
	mov	rax, QWORD PTR -632[rbp]
	add	rax, rdx
	mov	QWORD PTR -616[rbp], rax
	mov	rax, QWORD PTR -616[rbp]
	mov	edx, DWORD PTR -1028[rbp]
	mov	DWORD PTR [rax], edx
.L442:
	mov	QWORD PTR -568[rbp], 4
	mov	rax, QWORD PTR -568[rbp]
	add	rax, 4
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -552[rbp], rax
	mov	rdx, QWORD PTR -552[rbp]
	mov	rax, QWORD PTR -560[rbp]
	add	rax, rdx
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	mov	edx, DWORD PTR -1032[rbp]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -536[rbp], 8
	mov	rax, QWORD PTR -536[rbp]
	add	rax, 4
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -520[rbp], rax
	mov	rdx, QWORD PTR -520[rbp]
	mov	rax, QWORD PTR -528[rbp]
	add	rax, rdx
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	mov	edx, DWORD PTR -1036[rbp]
	mov	WORD PTR [rax], dx
	mov	QWORD PTR -504[rbp], 2
	mov	rax, QWORD PTR -504[rbp]
	add	rax, 4
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -488[rbp], rax
	mov	rdx, QWORD PTR -488[rbp]
	mov	rax, QWORD PTR -496[rbp]
	add	rax, rdx
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	movzx	edx, BYTE PTR -1012[rbp]
	mov	BYTE PTR [rax], dl
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	add	rax, 48
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -456[rbp], rax
	mov	QWORD PTR -448[rbp], 0
	mov	rax, QWORD PTR -448[rbp]
	add	rax, 12
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	add	rax, 4
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -424[rbp], rax
	mov	rdx, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR -432[rbp]
	add	rax, rdx
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -992[rbp], eax
	mov	edx, DWORD PTR -992[rbp]
	mov	rsi, QWORD PTR -1024[rbp]
	mov	rax, QWORD PTR -456[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_map_single@PLT
	mov	DWORD PTR -988[rbp], eax
	mov	QWORD PTR -408[rbp], 0
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 4
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, 12
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	add	rax, 4
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -376[rbp], rax
	mov	rdx, QWORD PTR -376[rbp]
	mov	rax, QWORD PTR -384[rbp]
	add	rax, rdx
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	mov	edx, DWORD PTR -988[rbp]
	mov	DWORD PTR [rax], edx
	mov	QWORD PTR -360[rbp], 512
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rdx, QWORD PTR -352[rbp]
	mov	rax, QWORD PTR -360[rbp]
	add	rax, rdx
	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 -920[rbp]
	mov	rdx, QWORD PTR -336[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -944[rbp], 200000
.L443:
	cmp	QWORD PTR -944[rbp], 0
	je	.L452
	mov	QWORD PTR -328[rbp], 520
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rdx, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR -328[rbp]
	add	rax, rdx
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -920[rbp]
	mov	rdx, QWORD PTR -304[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -296[rbp], rax
	cmp	QWORD PTR -296[rbp], 0
	jne	.L453
	mov	edi, 10
	call	udelay@PLT
.L447:
	mov	eax, DWORD PTR -1016[rbp]
	mov	esi, eax
	lea	rdi, .LC41[rip]
	mov	eax, 0
	call	printk@PLT
	nop
.L448:
	sub	QWORD PTR -944[rbp], 1
	jmp	.L443
.L452:
	nop
	jmp	.L445
.L453:
	nop
.L445:
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 504
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -272[rbp], rax
	mov	rdx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	rcx, QWORD PTR -272[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	mov	eax, DWORD PTR -1016[rbp]
	mov	edi, eax
	call	pollcomplete
	mov	DWORD PTR -984[rbp], eax
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 48
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -248[rbp], rax
	mov	QWORD PTR -240[rbp], 0
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 4
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 12
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 4
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rdx, QWORD PTR -208[rbp]
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -980[rbp], eax
	mov	QWORD PTR -192[rbp], 0
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 12
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 4
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rdx, QWORD PTR -168[rbp]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, rdx
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -976[rbp], eax
	mov	edx, DWORD PTR -976[rbp]
	mov	esi, DWORD PTR -980[rbp]
	mov	rax, QWORD PTR -248[rbp]
	mov	ecx, 0
	mov	rdi, rax
	call	pci_unmap_single@PLT
	cmp	DWORD PTR -984[rbp], 1
	je	.L449
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 284
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -972[rbp], eax
	mov	eax, DWORD PTR -984[rbp]
	mov	DWORD PTR -968[rbp], eax
	mov	eax, DWORD PTR -968[rbp]
	cmp	eax, DWORD PTR -972[rbp]
	je	.L450
	mov	eax, DWORD PTR -984[rbp]
	cdqe
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR -1016[rbp]
	mov	esi, eax
	lea	rdi, .LC42[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rcx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, 1
	jmp	.L440
.L449:
	mov	eax, DWORD PTR -1016[rbp]
	mov	esi, eax
	lea	rdi, .LC43[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rcx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, 1
	jmp	.L440
.L450:
	mov	QWORD PTR -136[rbp], 3
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 4
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rdx, QWORD PTR -120[rbp]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1000[rbp], al
	movzx	eax, BYTE PTR -1000[rbp]
	mov	DWORD PTR -964[rbp], eax
	mov	eax, DWORD PTR -964[rbp]
	and	eax, 254
	test	eax, eax
	je	.L451
	mov	QWORD PTR -104[rbp], 3
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rdx, QWORD PTR -88[rbp]
	mov	rax, QWORD PTR -96[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -999[rbp], al
	movzx	eax, BYTE PTR -999[rbp]
	mov	DWORD PTR -960[rbp], eax
	mov	eax, DWORD PTR -960[rbp]
	and	eax, 64
	mov	DWORD PTR -956[rbp], eax
	cmp	DWORD PTR -956[rbp], 0
	jne	.L451
	mov	QWORD PTR -72[rbp], 2
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 4
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -998[rbp], al
	movzx	eax, BYTE PTR -998[rbp]
	mov	DWORD PTR -952[rbp], eax
	mov	QWORD PTR -40[rbp], 3
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -912[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -997[rbp], al
	movzx	eax, BYTE PTR -997[rbp]
	mov	DWORD PTR -948[rbp], eax
	mov	ecx, DWORD PTR -948[rbp]
	mov	edx, DWORD PTR -952[rbp]
	mov	eax, DWORD PTR -1016[rbp]
	mov	esi, eax
	lea	rdi, .LC44[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rcx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, 1
	jmp	.L440
.L451:
	mov	rcx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	edx, 1
	mov	rsi, rcx
	mov	rdi, rax
	call	cmd_free
	mov	eax, 0
.L440:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	sendcmd, .-sendcmd
	.section	.rodata
	.align 8
.LC45:
	.string	"<4>cpqarray: Device busy for volume revalidation (usage=%d)\n"
	.text
	.globl	revalidate_allvol
	.type	revalidate_allvol, @function
revalidate_allvol:
.LFB65:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 736
	mov	QWORD PTR -728[rbp], rdi
	mov	rax, QWORD PTR -728[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -704[rbp], eax
	mov	eax, DWORD PTR -704[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -664[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -664[rbp]
	add	rax, rdx
	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 -648[rbp]
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -640[rbp]
	add	rax, 592
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	mov	QWORD PTR -624[rbp], rax
	mov	rdx, QWORD PTR -616[rbp]
	mov	rax, QWORD PTR -624[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	spin_lock_irqsave
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 108
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -700[rbp], eax
	cmp	DWORD PTR -700[rbp], 1
	jle	.L455
	mov	eax, DWORD PTR -704[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -64[rbp], rax
	lea	rdx, hba[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
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 592
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -616[rbp]
	mov	rax, QWORD PTR -24[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	spin_unlock_irqrestore
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 108
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -668[rbp], eax
	mov	eax, DWORD PTR -668[rbp]
	mov	esi, eax
	lea	rdi, .LC45[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, -16
	jmp	.L456
.L455:
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	add	rax, 108
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	add	rax, 108
	mov	QWORD PTR -568[rbp], rax
	mov	rax, QWORD PTR -568[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -696[rbp], eax
	mov	rax, QWORD PTR -584[rbp]
	mov	edx, DWORD PTR -696[rbp]
	add	edx, 1
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -704[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -560[rbp], rax
	lea	rdx, hba[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, 592
	mov	QWORD PTR -528[rbp], rax
	mov	rax, QWORD PTR -528[rbp]
	mov	QWORD PTR -520[rbp], rax
	mov	rdx, QWORD PTR -616[rbp]
	mov	rax, QWORD PTR -520[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	spin_unlock_irqrestore
	mov	QWORD PTR -512[rbp], 0
	mov	eax, DWORD PTR -704[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -504[rbp], rax
	mov	rdx, QWORD PTR -504[rbp]
	mov	rax, QWORD PTR -512[rbp]
	add	rax, rdx
	mov	QWORD PTR -496[rbp], rax
	lea	rdx, ida_gendisk[rip]
	mov	rax, QWORD PTR -496[rbp]
	add	rax, rdx
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -488[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -480[rbp], rax
	mov	QWORD PTR -472[rbp], 0
	mov	rdx, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR -480[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	set_capacity
	mov	DWORD PTR -708[rbp], 1
.L457:
	cmp	DWORD PTR -708[rbp], 15
	jg	.L468
	mov	eax, DWORD PTR -708[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -120[rbp], rax
	mov	eax, DWORD PTR -704[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -112[rbp], rax
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	lea	rdx, ida_gendisk[rip]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	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, 80
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -672[rbp], eax
	mov	eax, DWORD PTR -672[rbp]
	and	eax, 16
	test	eax, eax
	je	.L460
	mov	rax, QWORD PTR -88[rbp]
	mov	rdi, rax
	call	del_gendisk
.L460:
	add	DWORD PTR -708[rbp], 1
	jmp	.L457
.L468:
	nop
.L459:
	mov	QWORD PTR -464[rbp], 0
	mov	rax, QWORD PTR -464[rbp]
	add	rax, 112
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -448[rbp], rax
	mov	rdx, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR -456[rbp]
	add	rax, rdx
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	mov	QWORD PTR -424[rbp], rax
	mov	QWORD PTR -416[rbp], 384
	mov	rax, QWORD PTR -416[rbp]
	mov	DWORD PTR -692[rbp], eax
	mov	edx, DWORD PTR -692[rbp]
	mov	rax, QWORD PTR -424[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	QWORD PTR -408[rbp], 512
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -400[rbp], rax
	mov	rdx, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR -408[rbp]
	add	rax, rdx
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	rdx, QWORD PTR -384[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	rdx
	mov	eax, DWORD PTR -704[rbp]
	mov	edi, eax
	call	getgeometry
	mov	QWORD PTR -376[rbp], 512
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -368[rbp], rax
	mov	rdx, QWORD PTR -368[rbp]
	mov	rax, QWORD PTR -376[rbp]
	add	rax, rdx
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	rdx, QWORD PTR -352[rbp]
	mov	esi, 1
	mov	rdi, rax
	call	rdx
	mov	DWORD PTR -708[rbp], 0
.L461:
	cmp	DWORD PTR -708[rbp], 15
	jg	.L469
	mov	eax, DWORD PTR -708[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -312[rbp], rax
	mov	eax, DWORD PTR -704[rbp]
	cdqe
	sal	rax, 7
	mov	QWORD PTR -304[rbp], rax
	mov	rdx, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR -312[rbp]
	add	rax, rdx
	mov	QWORD PTR -296[rbp], rax
	lea	rdx, ida_gendisk[rip]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, rdx
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -280[rbp], rax
	mov	eax, DWORD PTR -708[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 112
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rdx, QWORD PTR -256[rbp]
	mov	rax, QWORD PTR -264[rbp]
	add	rax, rdx
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	QWORD PTR -240[rbp], rax
	cmp	DWORD PTR -708[rbp], 0
	je	.L464
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 4
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -684[rbp], eax
	cmp	DWORD PTR -684[rbp], 0
	je	.L470
.L464:
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 584
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -680[rbp], eax
	mov	eax, DWORD PTR -680[rbp]
	mov	WORD PTR -710[rbp], ax
	movzx	edx, WORD PTR -710[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	blk_queue_hardsect_size
	mov	rax, QWORD PTR -240[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 4
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -676[rbp], eax
	mov	eax, DWORD PTR -676[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	set_capacity
	mov	rax, QWORD PTR -280[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 56
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 584
	mov	QWORD PTR -144[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -280[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 64
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	mov	rdx, QWORD PTR -240[rbp]
	mov	QWORD PTR [rax], rdx
	cmp	DWORD PTR -708[rbp], 0
	je	.L471
	mov	rax, QWORD PTR -280[rbp]
	mov	rdi, rax
	call	add_disk
	jmp	.L465
.L470:
	nop
	jmp	.L465
.L471:
	nop
.L465:
	add	DWORD PTR -708[rbp], 1
	jmp	.L461
.L469:
	nop
.L463:
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	add	rax, 108
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	add	rax, 108
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -688[rbp], eax
	mov	rax, QWORD PTR -336[rbp]
	mov	edx, DWORD PTR -688[rbp]
	sub	edx, 1
	mov	DWORD PTR [rax], edx
	mov	eax, 0
.L456:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	revalidate_allvol, .-revalidate_allvol
	.globl	ida_revalidate
	.type	ida_revalidate, @function
ida_revalidate:
.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, 72
	mov	QWORD PTR -72[rbp], rdi
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 64
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	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, 4
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -60[rbp], eax
	mov	eax, DWORD PTR -60[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rdx, QWORD PTR -8[rbp]
	mov	rax, QWORD PTR -72[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	set_capacity
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	ida_revalidate, .-ida_revalidate
	.globl	pollcomplete
	.type	pollcomplete, @function
pollcomplete:
.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, 112
	mov	DWORD PTR -100[rbp], edi
	mov	DWORD PTR -96[rbp], 200000
.L475:
	cmp	DWORD PTR -96[rbp], 0
	jle	.L483
	mov	QWORD PTR -88[rbp], 536
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -80[rbp], rax
	lea	rdx, hba[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]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -100[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, hba[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
	mov	rax, QWORD PTR -16[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR -92[rbp], eax
	cmp	DWORD PTR -92[rbp], 0
	jne	.L478
	mov	edi, 10
	call	udelay@PLT
	jmp	.L482
.L478:
	mov	eax, DWORD PTR -92[rbp]
	jmp	.L480
.L482:
	sub	DWORD PTR -96[rbp], 1
	jmp	.L475
.L483:
	nop
.L477:
	mov	eax, 1
.L480:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	pollcomplete, .-pollcomplete
	.section	.rodata
	.align 8
.LC46:
	.string	"<7>cpqarray: Starting firmware's background processing\n"
	.align 8
.LC47:
	.string	"<4>cpqarray: Out of memory. Unable to start background processing.\n"
	.align 8
.LC48:
	.string	"<4>cpqarray: Unable to start background processing\n"
	.text
	.globl	start_fwbk
	.type	start_fwbk, @function
start_fwbk:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 176
	mov	DWORD PTR -164[rbp], edi
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -136[rbp], rax
	lea	rdx, hba[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, 56
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -156[rbp], eax
	cmp	DWORD PTR -156[rbp], 1077939729
	je	.L485
	mov	eax, DWORD PTR -164[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -96[rbp], rax
	lea	rdx, hba[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, 56
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -152[rbp], eax
	cmp	DWORD PTR -152[rbp], 1078464017
	jne	.L489
.L485:
	lea	rdi, .LC46[rip]
	mov	eax, 0
	call	printk@PLT
	mov	DWORD PTR -148[rbp], 524
	mov	eax, DWORD PTR -148[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	QWORD PTR -40[rbp], 0
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	cmp	rax, QWORD PTR -32[rbp]
	jne	.L487
	lea	rdi, .LC47[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L484
.L487:
	mov	BYTE PTR -157[rbp], -103
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	DWORD PTR -144[rbp], 0
	movzx	eax, BYTE PTR -157[rbp]
	mov	ecx, DWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	esi, DWORD PTR -164[rbp]
	sub	rsp, 8
	push	0
	mov	r9d, 0
	mov	r8d, 0
	mov	edi, eax
	call	sendcmd
	add	rsp, 16
	mov	DWORD PTR -140[rbp], eax
	cmp	DWORD PTR -140[rbp], 0
	je	.L488
	lea	rdi, .LC48[rip]
	mov	eax, 0
	call	printk@PLT
.L488:
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	kfree@PLT
	jmp	.L484
.L489:
	nop
.L484:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	start_fwbk, .-start_fwbk
	.section	.rodata
.LC49:
	.string	"<3>cpqarray:  out of memory.\n"
	.align 8
.LC50:
	.string	"<3>cpqarray: error sending ID controller\n"
.LC51:
	.string	" (%s)\n"
	.align 8
.LC52:
	.string	"<4>cpqarray ida%d:  This driver supports 16 logical drives per controller.\n.   Additional drives will not be detected\n"
	.align 8
.LC53:
	.string	"<4>cpqarray ida%d: idaGetGeometry - Controller failed to report status of logical drive %d\nAccess to this controller has been disabled\n"
	.align 8
.LC54:
	.string	"<6>cpqarray ida/c%dd%d: blksz=%d nr_blks=%d\n"
	.align 8
.LC55:
	.string	"<3>cpqarray: error sending sense config\n"
	.text
	.globl	getgeometry
	.type	getgeometry, @function
getgeometry:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1264
	mov	DWORD PTR -1252[rbp], edi
	mov	eax, DWORD PTR -1252[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -1096[rbp], rax
	lea	rdx, hba[rip]
	mov	rax, QWORD PTR -1096[rbp]
	add	rax, rdx
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1080[rbp], rax
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -1072[rbp], rax
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, 12
	mov	QWORD PTR -1064[rbp], rax
	mov	rax, QWORD PTR -1064[rbp]
	mov	DWORD PTR [rax], 0
	mov	DWORD PTR -1216[rbp], 32
	mov	eax, DWORD PTR -1216[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -1056[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -1048[rbp], rax
	mov	QWORD PTR -1040[rbp], 0
	mov	rax, QWORD PTR -1040[rbp]
	mov	QWORD PTR -1032[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -1024[rbp], rax
	mov	rax, QWORD PTR -1024[rbp]
	cmp	rax, QWORD PTR -1032[rbp]
	jne	.L491
	lea	rdi, .LC49[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L490
.L491:
	mov	DWORD PTR -1212[rbp], 524
	mov	eax, DWORD PTR -1212[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -1016[rbp], rax
	mov	rax, QWORD PTR -1016[rbp]
	mov	QWORD PTR -1008[rbp], rax
	mov	QWORD PTR -1000[rbp], 0
	mov	rax, QWORD PTR -1000[rbp]
	mov	QWORD PTR -992[rbp], rax
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -984[rbp], rax
	mov	rax, QWORD PTR -984[rbp]
	cmp	rax, QWORD PTR -992[rbp]
	jne	.L493
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	kfree@PLT
	lea	rdi, .LC49[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L490
.L493:
	mov	DWORD PTR -1208[rbp], 1036
	mov	eax, DWORD PTR -1208[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -976[rbp], rax
	mov	rax, QWORD PTR -976[rbp]
	mov	QWORD PTR -968[rbp], rax
	mov	QWORD PTR -960[rbp], 0
	mov	rax, QWORD PTR -960[rbp]
	mov	QWORD PTR -952[rbp], rax
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -944[rbp], rax
	mov	rax, QWORD PTR -944[rbp]
	cmp	rax, QWORD PTR -952[rbp]
	jne	.L494
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	rdi, rax
	call	kfree@PLT
	lea	rdi, .LC49[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L490
.L494:
	mov	DWORD PTR -1204[rbp], 484
	mov	eax, DWORD PTR -1204[rbp]
	mov	esi, 208
	mov	edi, eax
	call	kmalloc
	mov	QWORD PTR -936[rbp], rax
	mov	rax, QWORD PTR -936[rbp]
	mov	QWORD PTR -928[rbp], rax
	mov	QWORD PTR -920[rbp], 0
	mov	rax, QWORD PTR -920[rbp]
	mov	QWORD PTR -912[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	cmp	rax, QWORD PTR -912[rbp]
	jne	.L495
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdi, rax
	call	kfree@PLT
	lea	rdi, .LC49[rip]
	mov	eax, 0
	call	printk@PLT
	jmp	.L490
.L495:
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -896[rbp], rax
	mov	DWORD PTR -1200[rbp], 32
	mov	edx, DWORD PTR -1200[rbp]
	mov	rax, QWORD PTR -896[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -888[rbp], rax
	mov	DWORD PTR -1196[rbp], 524
	mov	edx, DWORD PTR -1196[rbp]
	mov	rax, QWORD PTR -888[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -880[rbp], rax
	mov	DWORD PTR -1192[rbp], 1036
	mov	edx, DWORD PTR -1192[rbp]
	mov	rax, QWORD PTR -880[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -872[rbp], rax
	mov	DWORD PTR -1188[rbp], 484
	mov	edx, DWORD PTR -1188[rbp]
	mov	rax, QWORD PTR -872[rbp]
	mov	esi, 0
	mov	rdi, rax
	call	memset@PLT
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -864[rbp], rax
	mov	rax, QWORD PTR -864[rbp]
	add	rax, 40
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -856[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -848[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	add	rax, 12
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -840[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -832[rbp]
	add	rax, 16
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -824[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -816[rbp], rax
	mov	rax, QWORD PTR -816[rbp]
	add	rax, 20
	mov	QWORD PTR -808[rbp], rax
	mov	rax, QWORD PTR -808[rbp]
	mov	DWORD PTR [rax], 0
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 24
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	mov	DWORD PTR [rax], 0
	mov	BYTE PTR -1245[rbp], 17
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -784[rbp], rax
	mov	DWORD PTR -1184[rbp], 0
	movzx	eax, BYTE PTR -1245[rbp]
	mov	ecx, DWORD PTR -1184[rbp]
	mov	rdx, QWORD PTR -784[rbp]
	mov	esi, DWORD PTR -1252[rbp]
	sub	rsp, 8
	push	0
	mov	r9d, 0
	mov	r8d, 0
	mov	edi, eax
	call	sendcmd
	add	rsp, 16
	mov	DWORD PTR -1180[rbp], eax
	cmp	DWORD PTR -1180[rbp], 1
	jne	.L496
	lea	rdi, .LC50[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	mov	rdi, rax
	call	kfree@PLT
	jmp	.L490
.L496:
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -776[rbp], rax
	mov	rax, QWORD PTR -776[rbp]
	add	rax, 36
	mov	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -1008[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1244[rbp], al
	mov	rax, QWORD PTR -768[rbp]
	movzx	edx, BYTE PTR -1244[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR -1220[rbp], 0
.L497:
	cmp	DWORD PTR -1220[rbp], 3
	jg	.L510
	mov	eax, DWORD PTR -1220[rbp]
	cdqe
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 28
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	mov	eax, DWORD PTR -1220[rbp]
	cdqe
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1235[rbp], al
	mov	rax, QWORD PTR -120[rbp]
	movzx	edx, BYTE PTR -1235[rbp]
	mov	BYTE PTR [rax], dl
	add	DWORD PTR -1220[rbp], 1
	jmp	.L497
.L510:
	nop
.L499:
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -760[rbp]
	add	rax, 32
	mov	QWORD PTR -752[rbp], rax
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	add	rax, 4
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1176[rbp], eax
	mov	rax, QWORD PTR -752[rbp]
	mov	edx, DWORD PTR -1176[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	add	rax, 64
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -720[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -712[rbp]
	mov	rsi, rax
	lea	rdi, .LC51[rip]
	mov	eax, 0
	call	printk@PLT
	mov	DWORD PTR -1224[rbp], 0
	mov	rax, QWORD PTR -1008[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1243[rbp], al
	movzx	eax, BYTE PTR -1243[rbp]
	mov	DWORD PTR -1172[rbp], eax
	cmp	DWORD PTR -1172[rbp], 16
	jle	.L500
	mov	eax, DWORD PTR -1252[rbp]
	mov	esi, eax
	lea	rdi, .LC52[rip]
	mov	eax, 0
	call	printk@PLT
.L500:
	mov	DWORD PTR -1228[rbp], 0
.L501:
	mov	rax, QWORD PTR -1008[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1242[rbp], al
	movzx	eax, BYTE PTR -1242[rbp]
	mov	DWORD PTR -1168[rbp], eax
	mov	eax, DWORD PTR -1224[rbp]
	cmp	eax, DWORD PTR -1168[rbp]
	jnb	.L511
	cmp	DWORD PTR -1228[rbp], 15
	setbe	al
	movzx	eax, al
	mov	DWORD PTR -1164[rbp], eax
	cmp	DWORD PTR -1164[rbp], 0
	je	.L512
	mov	DWORD PTR -1160[rbp], 1036
	mov	BYTE PTR -1241[rbp], 18
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -704[rbp], rax
	mov	eax, DWORD PTR -1160[rbp]
	mov	DWORD PTR -1156[rbp], eax
	movzx	eax, BYTE PTR -1241[rbp]
	mov	ecx, DWORD PTR -1156[rbp]
	mov	rdx, QWORD PTR -704[rbp]
	mov	esi, DWORD PTR -1252[rbp]
	sub	rsp, 8
	mov	edi, DWORD PTR -1228[rbp]
	push	rdi
	mov	r9d, 0
	mov	r8d, 0
	mov	edi, eax
	call	sendcmd
	add	rsp, 16
	mov	DWORD PTR -1180[rbp], eax
	cmp	DWORD PTR -1180[rbp], 1
	jne	.L505
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 12
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	mov	DWORD PTR [rax], 0
	mov	edx, DWORD PTR -1228[rbp]
	mov	eax, DWORD PTR -1252[rbp]
	mov	esi, eax
	lea	rdi, .LC53[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	mov	rdi, rax
	call	kfree@PLT
	jmp	.L490
.L505:
	mov	rax, QWORD PTR -968[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1240[rbp], al
	movzx	eax, BYTE PTR -1240[rbp]
	mov	DWORD PTR -1152[rbp], eax
	cmp	DWORD PTR -1152[rbp], 2
	je	.L506
	mov	BYTE PTR -1239[rbp], 16
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -696[rbp], rax
	mov	DWORD PTR -1148[rbp], 32
	movzx	eax, BYTE PTR -1239[rbp]
	mov	ecx, DWORD PTR -1148[rbp]
	mov	rdx, QWORD PTR -696[rbp]
	mov	esi, DWORD PTR -1252[rbp]
	sub	rsp, 8
	mov	edi, DWORD PTR -1228[rbp]
	push	rdi
	mov	r9d, 0
	mov	r8d, 0
	mov	edi, eax
	call	sendcmd
	add	rsp, 16
	mov	DWORD PTR -1180[rbp], eax
	cmp	DWORD PTR -1180[rbp], 1
	je	.L507
	mov	edx, DWORD PTR -1228[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -688[rbp], rax
	mov	rax, QWORD PTR -688[rbp]
	add	rax, 112
	mov	QWORD PTR -680[rbp], rax
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -672[rbp], rax
	mov	rdx, QWORD PTR -672[rbp]
	mov	rax, QWORD PTR -680[rbp]
	add	rax, rdx
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -664[rbp]
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -1234[rbp], ax
	movzx	edx, WORD PTR -1234[rbp]
	mov	rax, QWORD PTR -656[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -656[rbp]
	mov	QWORD PTR -648[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	add	rax, 4
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	add	rax, 4
	mov	QWORD PTR -624[rbp], rax
	mov	rdx, QWORD PTR -624[rbp]
	mov	rax, QWORD PTR -640[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -656[rbp]
	mov	QWORD PTR -616[rbp], rax
	mov	rax, QWORD PTR -616[rbp]
	add	rax, 8
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -600[rbp], rax
	mov	rax, QWORD PTR -600[rbp]
	add	rax, 8
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -1232[rbp], ax
	mov	rax, QWORD PTR -608[rbp]
	movzx	edx, WORD PTR -1232[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -656[rbp]
	mov	QWORD PTR -584[rbp], rax
	mov	rax, QWORD PTR -584[rbp]
	add	rax, 12
	mov	QWORD PTR -576[rbp], rax
	mov	QWORD PTR -568[rbp], 10
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -560[rbp], rax
	mov	rdx, QWORD PTR -560[rbp]
	mov	rax, QWORD PTR -568[rbp]
	add	rax, rdx
	mov	QWORD PTR -552[rbp], rax
	mov	rax, QWORD PTR -552[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1238[rbp], al
	mov	rax, QWORD PTR -576[rbp]
	movzx	edx, BYTE PTR -1238[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -656[rbp]
	mov	QWORD PTR -544[rbp], rax
	mov	rax, QWORD PTR -544[rbp]
	add	rax, 16
	mov	QWORD PTR -536[rbp], rax
	mov	QWORD PTR -528[rbp], 24
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -520[rbp], rax
	mov	rdx, QWORD PTR -520[rbp]
	mov	rax, QWORD PTR -528[rbp]
	add	rax, rdx
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1237[rbp], al
	mov	rax, QWORD PTR -536[rbp]
	movzx	edx, BYTE PTR -1237[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	add	rax, 12
	mov	QWORD PTR -496[rbp], rax
	mov	eax, DWORD PTR -1228[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -1144[rbp], eax
	mov	eax, DWORD PTR -1144[rbp]
	mov	DWORD PTR -1140[rbp], eax
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -488[rbp]
	add	rax, 12
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1136[rbp], eax
	mov	rax, QWORD PTR -496[rbp]
	mov	edx, DWORD PTR -1136[rbp]
	or	edx, DWORD PTR -1140[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -656[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1132[rbp], eax
	mov	rax, QWORD PTR -656[rbp]
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	add	rax, 4
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1128[rbp], eax
	mov	esi, DWORD PTR -1128[rbp]
	mov	ecx, DWORD PTR -1132[rbp]
	mov	edx, DWORD PTR -1228[rbp]
	mov	eax, DWORD PTR -1252[rbp]
	mov	r8d, esi
	mov	esi, eax
	lea	rdi, .LC54[rip]
	mov	eax, 0
	call	printk@PLT
	mov	BYTE PTR -1236[rbp], 80
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -456[rbp], rax
	mov	DWORD PTR -1124[rbp], 484
	movzx	eax, BYTE PTR -1236[rbp]
	mov	ecx, DWORD PTR -1124[rbp]
	mov	rdx, QWORD PTR -456[rbp]
	mov	esi, DWORD PTR -1252[rbp]
	sub	rsp, 8
	mov	edi, DWORD PTR -1228[rbp]
	push	rdi
	mov	r9d, 0
	mov	r8d, 0
	mov	edi, eax
	call	sendcmd
	add	rsp, 16
	mov	DWORD PTR -1180[rbp], eax
	cmp	DWORD PTR -1180[rbp], 1
	jne	.L508
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 12
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	DWORD PTR [rax], 0
	lea	rdi, .LC55[rip]
	mov	eax, 0
	call	printk@PLT
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -240[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rdi, rax
	call	kfree@PLT
	jmp	.L490
.L508:
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	add	rax, 40
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	add	rax, 8
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	movzx	eax, WORD PTR [rax]
	mov	WORD PTR -1230[rbp], ax
	mov	rax, QWORD PTR -440[rbp]
	movzx	edx, WORD PTR -1230[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, 16
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	add	rax, 48
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1120[rbp], eax
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -384[rbp]
	add	rax, 16
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1116[rbp], eax
	mov	rax, QWORD PTR -408[rbp]
	mov	edx, DWORD PTR -1116[rbp]
	or	edx, DWORD PTR -1120[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -368[rbp], rax
	mov	rax, QWORD PTR -368[rbp]
	add	rax, 16
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	add	rax, 56
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -344[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1112[rbp], eax
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	add	rax, 16
	mov	QWORD PTR -328[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1108[rbp], eax
	mov	rax, QWORD PTR -360[rbp]
	mov	edx, DWORD PTR -1108[rbp]
	or	edx, DWORD PTR -1112[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 20
	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, 56
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1104[rbp], eax
	mov	rax, QWORD PTR -1080[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 20
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -1100[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	mov	edx, DWORD PTR -1100[rbp]
	or	edx, DWORD PTR -1104[rbp]
	mov	DWORD PTR [rax], edx
.L507:
	add	DWORD PTR -1224[rbp], 1
.L506:
	add	DWORD PTR -1228[rbp], 1
	jmp	.L501
.L511:
	nop
	jmp	.L504
.L512:
	nop
.L504:
	mov	rax, QWORD PTR -928[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1048[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	rdi, rax
	call	kfree@PLT
	mov	rax, QWORD PTR -1008[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rdi, rax
	call	kfree@PLT
	nop
.L490:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	getgeometry, .-getgeometry
	.section	.rodata
	.align 8
.LC56:
	.string	"<4>cpqarray: Removing EISA controller %d\n"
	.text
	.globl	cpqarray_exit
	.type	cpqarray_exit, @function
cpqarray_exit:
.LFB70:
	.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	rdi, cpqarray_pci_driver[rip]
	call	pci_unregister_driver
	mov	DWORD PTR -52[rbp], 0
.L514:
	cmp	DWORD PTR -52[rbp], 7
	jg	.L520
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	eax, DWORD PTR -52[rbp]
	cdqe
	sal	rax, 3
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, hba[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
	mov	rax, QWORD PTR -16[rbp]
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -40[rbp]
	je	.L517
	mov	eax, DWORD PTR -52[rbp]
	mov	esi, eax
	lea	rdi, .LC56[rip]
	mov	eax, 0
	call	printk@PLT
	mov	eax, DWORD PTR -52[rbp]
	mov	edi, eax
	call	cpqarray_remove_one_eisa
.L517:
	add	DWORD PTR -52[rbp], 1
	jmp	.L514
.L520:
	nop
.L516:
	mov	rax, QWORD PTR proc_root_driver[rip]
	mov	rsi, rax
	lea	rdi, .LC16[rip]
	call	remove_proc_entry@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	cpqarray_exit, .-cpqarray_exit
	.globl	main
	.type	main, @function
main:
.LFB71:
	.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
.LFE71:
	.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	number_genhd_registered
	.align 2
	.type	number_genhd_registered, @object
	.size	number_genhd_registered, 2
number_genhd_registered:
	.zero	2
	.globl	number_fixed_genhd_used
	.align 2
	.type	number_fixed_genhd_used, @object
	.size	number_fixed_genhd_used, 2
number_fixed_genhd_used:
	.zero	2
	.globl	fixed_gendisk
	.align 32
	.type	fixed_gendisk, @object
	.size	fixed_gendisk, 2400
fixed_gendisk:
	.zero	2400
	.globl	genhd_registered
	.align 32
	.type	genhd_registered, @object
	.size	genhd_registered, 2400
genhd_registered:
	.zero	2400
	.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:
.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, 80
	lea	rdi, kernel_lock[rip]
	call	spin_lock_init
	mov	DWORD PTR -76[rbp], 0
.L524:
	cmp	DWORD PTR -76[rbp], 9
	jg	.L533
	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	.L524
.L533:
	nop
.L526:
	mov	DWORD PTR -76[rbp], 0
.L527:
	cmp	DWORD PTR -76[rbp], 9
	jg	.L534
	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	.L527
.L534:
	nop
.L529:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	init_kernel, .-init_kernel
	.type	ddv_2, @function
ddv_2:
.LFB73:
	.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
.L536:
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -2[rbp], ax
	cmp	WORD PTR -2[rbp], 1
	je	.L561
	cmp	WORD PTR -2[rbp], 2
	je	.L562
	cmp	WORD PTR -2[rbp], 3
	je	.L563
	cmp	WORD PTR -2[rbp], 4
	je	.L564
	cmp	WORD PTR -2[rbp], 5
	je	.L565
	cmp	WORD PTR -2[rbp], 6
	jne	.L566
	jmp	.L559
.L561:
	nop
.L538:
	jmp	.L550
.L562:
	nop
.L540:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_timer_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L550
.L563:
	nop
.L542:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_interrupt_handler
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L550
.L564:
	nop
.L544:
	mov	DWORD PTR current_execution_context[rip], 1
	call	call_shared_workqueue_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L550
.L565:
	nop
.L546:
	mov	DWORD PTR current_execution_context[rip], 2
	call	call_tasklet_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L550
.L559:
.L548:
	mov	DWORD PTR current_execution_context[rip], 1
	call	call_pci_functions
	mov	DWORD PTR current_execution_context[rip], 1
	jmp	.L550
.L566:
	nop
.L549:
	nop
.L550:
	cmp	WORD PTR -2[rbp], 0
	je	.L567
	jmp	.L536
.L567:
	nop
.L552:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	ddv_2, .-ddv_2
	.globl	ddv
	.type	ddv, @function
ddv:
.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, 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
.L569:
	mov	DWORD PTR current_execution_context[rip], 1
	call	call_genhd_functions
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	je	.L575
	jmp	.L569
.L575:
	nop
.L571:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L573
	call	__stack_chk_fail@PLT
.L573:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	ddv, .-ddv
	.globl	call_ddv
	.type	call_ddv, @function
call_ddv:
.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 current_execution_context[rip], 1
	call	init_kernel
	call	cpqarray_init
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L577
	mov	eax, -1
	jmp	.L578
.L577:
	call	ddv
	mov	DWORD PTR current_execution_context[rip], 1
	call	cpqarray_exit
	mov	eax, 0
.L578:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	call_ddv, .-call_ddv
	.globl	call_cdev_functions
	.type	call_cdev_functions, @function
call_cdev_functions:
.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, 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	.L676
	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	.L582
	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	.L583
	mov	DWORD PTR -1308[rbp], 1
	jmp	.L584
.L583:
	mov	DWORD PTR -1308[rbp], 0
	jmp	.L584
.L582:
	mov	DWORD PTR -1308[rbp], 0
.L584:
	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	.L677
	cmp	WORD PTR -1310[rbp], 1
	je	.L678
	cmp	WORD PTR -1310[rbp], 2
	je	.L679
	cmp	WORD PTR -1310[rbp], 3
	je	.L680
	cmp	WORD PTR -1310[rbp], 4
	je	.L681
	cmp	WORD PTR -1310[rbp], 5
	je	.L682
	cmp	WORD PTR -1310[rbp], 6
	je	.L683
	cmp	WORD PTR -1310[rbp], 7
	je	.L684
	cmp	WORD PTR -1310[rbp], 8
	je	.L685
	cmp	WORD PTR -1310[rbp], 9
	je	.L686
	cmp	WORD PTR -1310[rbp], 10
	je	.L687
	cmp	WORD PTR -1310[rbp], 11
	je	.L688
	cmp	WORD PTR -1310[rbp], 12
	je	.L689
	cmp	WORD PTR -1310[rbp], 13
	je	.L690
	cmp	WORD PTR -1310[rbp], 14
	je	.L691
	cmp	WORD PTR -1310[rbp], 15
	je	.L692
	cmp	WORD PTR -1310[rbp], 16
	je	.L693
	cmp	WORD PTR -1310[rbp], 17
	je	.L694
	cmp	WORD PTR -1310[rbp], 18
	je	.L695
	cmp	WORD PTR -1310[rbp], 19
	je	.L696
	cmp	WORD PTR -1310[rbp], 20
	je	.L697
	cmp	WORD PTR -1310[rbp], 21
	je	.L698
	cmp	WORD PTR -1310[rbp], 22
	je	.L699
	cmp	WORD PTR -1310[rbp], 23
	je	.L700
	cmp	WORD PTR -1310[rbp], 24
	je	.L701
	cmp	WORD PTR -1310[rbp], 25
	je	.L702
	cmp	WORD PTR -1310[rbp], 26
	jne	.L703
	jmp	.L675
.L677:
	nop
.L586:
	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	.L704
	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	.L704
.L678:
	nop
.L588:
	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	.L705
	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	.L705
.L679:
	nop
.L590:
	jmp	.L641
.L680:
	nop
.L592:
	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	.L706
	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	.L706
.L681:
	nop
.L594:
	jmp	.L641
.L682:
	nop
.L596:
	jmp	.L641
.L683:
	nop
.L598:
	jmp	.L641
.L684:
	nop
.L600:
	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	.L707
	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	.L707
.L685:
	nop
.L602:
	jmp	.L641
.L686:
	nop
.L604:
	jmp	.L641
.L687:
	nop
.L606:
	jmp	.L641
.L688:
	nop
.L608:
	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	.L708
	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	.L708
	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	.L708
	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	.L708
.L689:
	nop
.L610:
	jmp	.L641
.L690:
	nop
.L612:
	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	.L709
	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	.L709
	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	.L709
	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	.L709
.L691:
	nop
.L614:
	jmp	.L641
.L692:
	nop
.L616:
	jmp	.L641
.L693:
	nop
.L618:
	jmp	.L641
.L694:
	nop
.L620:
	jmp	.L641
.L695:
	nop
.L622:
	jmp	.L641
.L696:
	nop
.L624:
	jmp	.L641
.L697:
	nop
.L626:
	jmp	.L641
.L698:
	nop
.L628:
	jmp	.L641
.L699:
	nop
.L630:
	jmp	.L641
.L700:
	nop
.L632:
	jmp	.L641
.L701:
	nop
.L634:
	jmp	.L641
.L702:
	nop
.L636:
	jmp	.L641
.L675:
.L638:
	jmp	.L641
.L703:
	nop
.L639:
	jmp	.L641
.L704:
	nop
	jmp	.L579
.L705:
	nop
	jmp	.L579
.L706:
	nop
	jmp	.L579
.L707:
	nop
	jmp	.L579
.L708:
	nop
	jmp	.L579
.L709:
	nop
.L641:
	jmp	.L579
.L676:
	nop
.L579:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L648
	call	__stack_chk_fail@PLT
.L648:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	call_cdev_functions, .-call_cdev_functions
	.globl	call_interrupt_handler
	.type	call_interrupt_handler, @function
call_interrupt_handler:
.LFB77:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 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	.L714
	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
.L714:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L713
	call	__stack_chk_fail@PLT
.L713:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	call_interrupt_handler, .-call_interrupt_handler
	.globl	create_pci_dev
	.type	create_pci_dev, @function
create_pci_dev:
.LFB78:
	.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
.LFE78:
	.size	create_pci_dev, .-create_pci_dev
	.globl	pci_probe_device
	.type	pci_probe_device, @function
pci_probe_device:
.LFB79:
	.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	.L718
	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
.L718:
	mov	eax, DWORD PTR -132[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	pci_probe_device, .-pci_probe_device
	.globl	pci_remove_device
	.type	pci_remove_device, @function
pci_remove_device:
.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, 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
.LFE80:
	.size	pci_remove_device, .-pci_remove_device
	.globl	call_pci_functions
	.type	call_pci_functions, @function
call_pci_functions:
.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	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR -24[rbp], eax
	cmp	DWORD PTR -24[rbp], 0
	je	.L734
	cmp	DWORD PTR -24[rbp], 1
	jne	.L735
	jmp	.L733
.L734:
	nop
.L724:
	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	.L736
	call	pci_probe_device
	jmp	.L736
.L733:
.L726:
	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	.L737
	call	pci_remove_device
	jmp	.L737
.L735:
	nop
.L727:
	jmp	.L729
.L736:
	nop
	jmp	.L729
.L737:
	nop
.L729:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	call_pci_functions, .-call_pci_functions
	.globl	call_tasklet_functions
	.type	call_tasklet_functions, @function
call_tasklet_functions:
.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, 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	.L741
	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	.L741
	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
.L741:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE82:
	.size	call_tasklet_functions, .-call_tasklet_functions
	.globl	call_timer_functions
	.type	call_timer_functions, @function
call_timer_functions:
.LFB83:
	.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	.L745
	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
.L745:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	call_timer_functions, .-call_timer_functions
	.globl	pci_enable_device
	.type	pci_enable_device, @function
pci_enable_device:
.LFB84:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 208
	mov	QWORD PTR -200[rbp], rdi
	mov	DWORD PTR -184[rbp], 0
.L747:
	cmp	DWORD PTR -184[rbp], 11
	jg	.L752
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 24
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 56
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rdx, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR -160[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	QWORD PTR [rax], 256
	mov	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR -180[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 8
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 56
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rdx, QWORD PTR -112[rbp]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	edx, DWORD PTR -180[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -186[rbp], ax
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	sal	rax, 5
	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]
	add	rax, 56
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	movzx	eax, WORD PTR -186[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -184[rbp]
	cdqe
	sal	rax, 5
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 8
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 56
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR -24[rbp], rax
	mov	rdx, QWORD PTR -24[rbp]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	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 -64[rbp]
	mov	rcx, QWORD PTR -8[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, rcx
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -184[rbp], 1
	jmp	.L747
.L752:
	nop
.L749:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	pci_enable_device, .-pci_enable_device
	.globl	pci_register_driver
	.type	pci_register_driver, @function
pci_register_driver:
.LFB86:
	.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	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	je	.L754
	lea	rax, registered_pci_driver[rip]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	lea	rax, registered_pci_driver[rip]
	add	rax, 448
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	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
	mov	eax, 0
	jmp	.L755
.L754:
	mov	eax, -1
.L755:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	pci_register_driver, .-pci_register_driver
	.globl	pci_unregister_driver
	.type	pci_unregister_driver, @function
pci_unregister_driver:
.LFB87:
	.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 -40[rbp], rdi
	lea	rax, registered_pci_driver[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
	mov	rdx, QWORD PTR -16[rbp]
	mov	QWORD PTR [rax], rdx
	lea	rax, registered_pci_driver[rip]
	add	rax, 448
	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
.LFE87:
	.size	pci_unregister_driver, .-pci_unregister_driver
	.section	.rodata
.LC57:
	.string	"Process context"
	.text
	.type	assert_context_process, @function
assert_context_process:
.LFB92:
	.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, .LC57[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE92:
	.size	assert_context_process, .-assert_context_process
	.globl	put_user
	.type	put_user, @function
put_user:
.LFB94:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	call	assert_context_process
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.size	put_user, .-put_user
	.globl	copy_to_user
	.type	copy_to_user, @function
copy_to_user:
.LFB95:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	call	assert_context_process
	mov	eax, 0
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE95:
	.size	copy_to_user, .-copy_to_user
	.globl	copy_from_user
	.type	copy_from_user, @function
copy_from_user:
.LFB96:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	QWORD PTR -32[rbp], rsi
	mov	QWORD PTR -40[rbp], rdx
	call	assert_context_process
	mov	eax, 0
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE96:
	.size	copy_from_user, .-copy_from_user
	.globl	register_chrdev_region
	.type	register_chrdev_region, @function
register_chrdev_region:
.LFB97:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 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	.L767
	mov	DWORD PTR -12[rbp], 1
	jmp	.L768
.L767:
	cmp	DWORD PTR -4[rbp], -1
	jne	.L769
	mov	DWORD PTR -12[rbp], 1
	jmp	.L768
.L769:
	mov	DWORD PTR -12[rbp], 0
.L768:
	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
.LFE97:
	.size	register_chrdev_region, .-register_chrdev_region
	.globl	alloc_chrdev_region
	.type	alloc_chrdev_region, @function
alloc_chrdev_region:
.LFB98:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 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	.L772
	mov	DWORD PTR -28[rbp], 1
	jmp	.L773
.L772:
	cmp	DWORD PTR -20[rbp], -1
	jne	.L774
	mov	DWORD PTR -28[rbp], 1
	jmp	.L773
.L774:
	mov	DWORD PTR -28[rbp], 0
.L773:
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	cmp	DWORD PTR -20[rbp], 0
	jne	.L775
	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
.L775:
	mov	eax, DWORD PTR -20[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.size	alloc_chrdev_region, .-alloc_chrdev_region
	.globl	register_chrdev
	.type	register_chrdev, @function
register_chrdev:
.LFB99:
	.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	.L778
	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	.L779
.L778:
	mov	eax, DWORD PTR -68[rbp]
.L779:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	register_chrdev, .-register_chrdev
	.globl	unregister_chrdev
	.type	unregister_chrdev, @function
unregister_chrdev:
.LFB100:
	.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
.LFE100:
	.size	unregister_chrdev, .-unregister_chrdev
	.globl	cdev_add
	.type	cdev_add, @function
cdev_add:
.LFB102:
	.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	.L783
	mov	DWORD PTR -160[rbp], 1
	jmp	.L784
.L783:
	cmp	DWORD PTR -152[rbp], -1
	jne	.L785
	mov	DWORD PTR -160[rbp], 1
	jmp	.L784
.L785:
	mov	DWORD PTR -160[rbp], 0
.L784:
	mov	eax, DWORD PTR -160[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	cmp	DWORD PTR -152[rbp], 0
	jne	.L786
	movzx	eax, WORD PTR number_cdev_registered[rip]
	cwde
	mov	DWORD PTR -148[rbp], eax
	cmp	DWORD PTR -148[rbp], 9
	jg	.L787
	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	.L786
.L787:
	mov	eax, -1
	jmp	.L788
.L786:
	mov	eax, DWORD PTR -152[rbp]
.L788:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE102:
	.size	cdev_add, .-cdev_add
	.globl	cdev_del
	.type	cdev_del, @function
cdev_del:
.LFB103:
	.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
.L790:
	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	.L796
	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	.L793
	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	.L789
.L793:
	add	DWORD PTR -64[rbp], 1
	jmp	.L790
.L796:
	nop
.L792:
	nop
.L789:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	cdev_del, .-cdev_del
	.globl	cdev_init
	.type	cdev_init, @function
cdev_init:
.LFB104:
	.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
.LFE104:
	.size	cdev_init, .-cdev_init
	.section	.rodata
	.align 8
.LC58:
	.string	"Locked mutex must not be reinitialized"
	.text
	.globl	mutex_init
	.type	mutex_init, @function
mutex_init:
.LFB105:
	.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, .LC58[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
.LFE105:
	.size	mutex_init, .-mutex_init
	.section	.rodata
.LC59:
	.string	"Unlock a not locked mutex"
	.text
	.globl	mutex_unlock
	.type	mutex_unlock, @function
mutex_unlock:
.LFB107:
	.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, .LC59[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
.LFE107:
	.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:
.LFB108:
	.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
.LFE108:
	.size	request_region, .-request_region
	.globl	release_region
	.type	release_region, @function
release_region:
.LFB109:
	.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
.LFE109:
	.size	release_region, .-release_region
	.section	.rodata
.LC60:
	.string	"I/O port is requested"
	.text
	.globl	inb
	.type	inb, @function
inb:
.LFB110:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	eax, DWORD PTR ddv_ioport_request_start[rip]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jb	.L808
	mov	edx, DWORD PTR ddv_ioport_request_start[rip]
	mov	eax, DWORD PTR ddv_ioport_request_len[rip]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jnb	.L809
	mov	DWORD PTR -16[rbp], 1
	jmp	.L810
.L809:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L810
.L808:
	mov	DWORD PTR -16[rbp], 0
.L810:
	mov	eax, DWORD PTR -16[rbp]
	lea	rsi, .LC60[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	eax, 0
	call	__VERIFIER_nondet_uchar@PLT
	mov	BYTE PTR -17[rbp], al
	movzx	eax, BYTE PTR -17[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE110:
	.size	inb, .-inb
	.globl	outb
	.type	outb, @function
outb:
.LFB111:
	.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, edi
	mov	DWORD PTR -24[rbp], esi
	mov	BYTE PTR -20[rbp], al
	mov	eax, DWORD PTR ddv_ioport_request_start[rip]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jb	.L813
	mov	edx, DWORD PTR ddv_ioport_request_start[rip]
	mov	eax, DWORD PTR ddv_ioport_request_len[rip]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jnb	.L814
	mov	DWORD PTR -16[rbp], 1
	jmp	.L815
.L814:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L815
.L813:
	mov	DWORD PTR -16[rbp], 0
.L815:
	mov	eax, DWORD PTR -16[rbp]
	lea	rsi, .LC60[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE111:
	.size	outb, .-outb
	.globl	outw
	.type	outw, @function
outw:
.LFB113:
	.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, edi
	mov	DWORD PTR -24[rbp], esi
	mov	WORD PTR -20[rbp], ax
	mov	eax, DWORD PTR ddv_ioport_request_start[rip]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jb	.L818
	mov	edx, DWORD PTR ddv_ioport_request_start[rip]
	mov	eax, DWORD PTR ddv_ioport_request_len[rip]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jnb	.L819
	mov	DWORD PTR -16[rbp], 1
	jmp	.L820
.L819:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L820
.L818:
	mov	DWORD PTR -16[rbp], 0
.L820:
	mov	eax, DWORD PTR -16[rbp]
	lea	rsi, .LC60[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE113:
	.size	outw, .-outw
	.globl	inl
	.type	inl, @function
inl:
.LFB114:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	DWORD PTR -36[rbp], edi
	mov	eax, DWORD PTR ddv_ioport_request_start[rip]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -16[rbp]
	jb	.L823
	mov	edx, DWORD PTR ddv_ioport_request_start[rip]
	mov	eax, DWORD PTR ddv_ioport_request_len[rip]
	add	eax, edx
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	cmp	eax, DWORD PTR -8[rbp]
	jnb	.L824
	mov	DWORD PTR -20[rbp], 1
	jmp	.L825
.L824:
	mov	DWORD PTR -20[rbp], 0
	jmp	.L825
.L823:
	mov	DWORD PTR -20[rbp], 0
.L825:
	mov	eax, DWORD PTR -20[rbp]
	lea	rsi, .LC60[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	eax, 0
	call	__VERIFIER_nondet_unsigned@PLT
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE114:
	.size	inl, .-inl
	.globl	outl
	.type	outl, @function
outl:
.LFB115:
	.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 ddv_ioport_request_start[rip]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jb	.L828
	mov	edx, DWORD PTR ddv_ioport_request_start[rip]
	mov	eax, DWORD PTR ddv_ioport_request_len[rip]
	add	eax, edx
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cmp	eax, DWORD PTR -4[rbp]
	jnb	.L829
	mov	DWORD PTR -16[rbp], 1
	jmp	.L830
.L829:
	mov	DWORD PTR -16[rbp], 0
	jmp	.L830
.L828:
	mov	DWORD PTR -16[rbp], 0
.L830:
	mov	eax, DWORD PTR -16[rbp]
	lea	rsi, .LC60[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE115:
	.size	outl, .-outl
	.globl	schedule
	.type	schedule, @function
schedule:
.LFB121:
	.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
.LFE121:
	.size	schedule, .-schedule
	.globl	schedule_timeout
	.type	schedule_timeout, @function
schedule_timeout:
.LFB122:
	.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
.LFE122:
	.size	schedule_timeout, .-schedule_timeout
	.globl	tasklet_init
	.type	tasklet_init, @function
tasklet_init:
.LFB131:
	.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
.LFE131:
	.size	tasklet_init, .-tasklet_init
	.globl	spin_lock_init
	.type	spin_lock_init, @function
spin_lock_init:
.LFB132:
	.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
.LFE132:
	.size	spin_lock_init, .-spin_lock_init
	.section	.rodata
.LC61:
	.string	"Spinlock is not initialized"
	.text
	.globl	spin_lock_irqsave
	.type	spin_lock_irqsave, @function
spin_lock_irqsave:
.LFB134:
	.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	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -40[rbp], eax
	mov	eax, DWORD PTR -40[rbp]
	lea	rsi, .LC61[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
.L841:
	mov	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -36[rbp], eax
	cmp	DWORD PTR -36[rbp], 0
	jne	.L842
	mov	rax, QWORD PTR -56[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
	jmp	.L844
.L842:
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	jmp	.L841
.L844:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE134:
	.size	spin_lock_irqsave, .-spin_lock_irqsave
	.section	.rodata
.LC62:
	.string	"Unlock a not locked spinlock"
	.text
	.globl	spin_unlock_irqrestore
	.type	spin_unlock_irqrestore, @function
spin_unlock_irqrestore:
.LFB136:
	.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	eax, 0
	call	__CPROVER_atomic_begin@PLT
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	add	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 1
	sete	al
	movzx	eax, al
	mov	DWORD PTR -36[rbp], eax
	mov	eax, DWORD PTR -36[rbp]
	lea	rsi, .LC62[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	mov	rax, QWORD PTR -56[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
	mov	eax, 0
	call	__CPROVER_atomic_end@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE136:
	.size	spin_unlock_irqrestore, .-spin_unlock_irqrestore
	.globl	init_timer
	.type	init_timer, @function
init_timer:
.LFB137:
	.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	.L850
	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
.L850:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE137:
	.size	init_timer, .-init_timer
	.section	.rodata
.LC63:
	.string	"Timer is initialized"
	.text
	.globl	add_timer
	.type	add_timer, @function
add_timer:
.LFB138:
	.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	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, .LC63[rip]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assert@PLT
	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
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE138:
	.size	add_timer, .-add_timer
	.globl	add_timer_on
	.type	add_timer_on, @function
add_timer_on:
.LFB139:
	.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
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE139:
	.size	add_timer_on, .-add_timer_on
	.globl	mod_timer
	.type	mod_timer, @function
mod_timer:
.LFB140:
	.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, .LC63[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
.LFE140:
	.size	mod_timer, .-mod_timer
	.globl	del_timer
	.type	del_timer, @function
del_timer:
.LFB141:
	.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
.LFE141:
	.size	del_timer, .-del_timer
	.globl	init_waitqueue_head
	.type	init_waitqueue_head, @function
init_waitqueue_head:
.LFB142:
	.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
.LFE142:
	.size	init_waitqueue_head, .-init_waitqueue_head
	.globl	call_shared_workqueue_functions
	.type	call_shared_workqueue_functions, @function
call_shared_workqueue_functions:
.LFB145:
	.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	.L864
	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
.L864:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE145:
	.size	call_shared_workqueue_functions, .-call_shared_workqueue_functions
	.globl	free_irq
	.type	free_irq, @function
free_irq:
.LFB146:
	.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
.LFE146:
	.size	free_irq, .-free_irq
	.globl	request_irq
	.type	request_irq, @function
request_irq:
.LFB147:
	.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	.L868
	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	.L869
.L868:
	mov	eax, -1
.L869:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE147:
	.size	request_irq, .-request_irq
	.globl	get_zeroed_page
	.type	get_zeroed_page, @function
get_zeroed_page:
.LFB148:
	.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	.L871
	call	assert_context_process
.L871:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE148:
	.size	get_zeroed_page, .-get_zeroed_page
	.globl	alloc_pages
	.type	alloc_pages, @function
alloc_pages:
.LFB149:
	.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	.L874
	call	assert_context_process
.L874:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE149:
	.size	alloc_pages, .-alloc_pages
	.globl	__get_free_pages
	.type	__get_free_pages, @function
__get_free_pages:
.LFB151:
	.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	.L877
	call	assert_context_process
.L877:
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE151:
	.size	__get_free_pages, .-__get_free_pages
	.globl	kmalloc
	.type	kmalloc, @function
kmalloc:
.LFB153:
	.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	.L880
	call	assert_context_process
.L880:
	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
.LFE153:
	.size	kmalloc, .-kmalloc
	.globl	kzalloc
	.type	kzalloc, @function
kzalloc:
.LFB154:
	.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	.L883
	call	assert_context_process
.L883:
	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
.LFE154:
	.size	kzalloc, .-kzalloc
	.globl	vmalloc
	.type	vmalloc, @function
vmalloc:
.LFB155:
	.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
.LFE155:
	.size	vmalloc, .-vmalloc
	.globl	create_request
	.type	create_request, @function
create_request:
.LFB156:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 232
	.cfi_offset 3, -24
	mov	DWORD PTR -228[rbp], edi
	mov	QWORD PTR -216[rbp], 132
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -208[rbp], rax
	mov	rdx, QWORD PTR -208[rbp]
	mov	rax, QWORD PTR -216[rbp]
	add	rax, rdx
	mov	QWORD PTR -200[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -192[rbp]
	mov	DWORD PTR [rax], 1
	mov	QWORD PTR -184[rbp], 176
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -176[rbp], rax
	mov	rdx, QWORD PTR -176[rbp]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	mov	QWORD PTR -168[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -168[rbp]
	add	rax, rdx
	mov	QWORD PTR -160[rbp], rax
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -152[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, rdx
	mov	QWORD PTR -144[rbp], rax
	mov	rdx, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -136[rbp], 136
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -128[rbp], rax
	mov	rdx, QWORD PTR -128[rbp]
	mov	rax, QWORD PTR -136[rbp]
	add	rax, rdx
	mov	QWORD PTR -120[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rbx, QWORD PTR -112[rbp]
	mov	eax, 0
	call	__VERIFIER_nondet_sector_t@PLT
	mov	QWORD PTR [rbx], rax
	mov	QWORD PTR -104[rbp], 152
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -96[rbp], rax
	mov	rdx, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, rdx
	mov	QWORD PTR -88[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rbx, QWORD PTR -80[rbp]
	mov	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR [rbx], eax
	mov	QWORD PTR -72[rbp], 192
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -64[rbp], rax
	mov	rdx, QWORD PTR -64[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -56[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	eax, 0
	call	__VERIFIER_nondet_pchar@PLT
	movsx	rdx, eax
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -228[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 232
	mov	QWORD PTR -32[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -32[rbp]
	add	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	DWORD PTR [rax], 1
	mov	eax, 0
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE156:
	.size	create_request, .-create_request
	.globl	call_rq_function
	.type	call_rq_function, @function
call_rq_function:
.LFB157:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 544
	mov	DWORD PTR -532[rbp], edi
	mov	QWORD PTR -520[rbp], 0
	mov	rax, QWORD PTR -520[rbp]
	mov	QWORD PTR -512[rbp], rax
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -504[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -504[rbp]
	add	rax, rdx
	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 -488[rbp]
	mov	QWORD PTR -480[rbp], rax
	mov	rax, QWORD PTR -480[rbp]
	add	rax, 56
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	cmp	rax, QWORD PTR -512[rbp]
	je	.L890
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -440[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -440[rbp]
	add	rax, rdx
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	QWORD PTR -416[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	add	rax, 56
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -400[rbp], rax
	mov	rax, QWORD PTR -400[rbp]
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	add	rax, 80
	mov	QWORD PTR -384[rbp], rax
	mov	rax, QWORD PTR -384[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L890
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -376[rbp], rax
	lea	rdx, genhd_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, 56
	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, 64
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	rdi, rax
	call	spin_lock@PLT
	mov	eax, DWORD PTR -532[rbp]
	mov	edi, eax
	call	create_request
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -304[rbp], rax
	lea	rdx, genhd_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, 56
	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, 76
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -248[rbp]
	mov	edx, DWORD PTR -532[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -240[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 56
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -192[rbp], rax
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -184[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	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 -168[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 56
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rdx, QWORD PTR -192[rbp]
	mov	rdi, rax
	call	rdx
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -136[rbp], rax
	lea	rdx, genhd_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, 56
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 64
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	rdi, rax
	call	spin_unlock@PLT
	jmp	.L889
.L890:
	mov	eax, DWORD PTR -532[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -64[rbp], rax
	lea	rdx, genhd_registered[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
	mov	rax, QWORD PTR -48[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 56
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	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	rax, QWORD PTR [rax]
	test	rax, rax
	nop
.L889:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE157:
	.size	call_rq_function, .-call_rq_function
	.globl	call_genhd_functions
	.type	call_genhd_functions, @function
call_genhd_functions:
.LFB158:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 1264
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	mov	DWORD PTR -1260[rbp], eax
	cmp	DWORD PTR -1260[rbp], 0
	je	.L927
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -1264[rbp], ax
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	mov	DWORD PTR -1256[rbp], eax
	movzx	eax, WORD PTR -1264[rbp]
	mov	DWORD PTR -1252[rbp], eax
	mov	eax, DWORD PTR -1252[rbp]
	cmp	eax, DWORD PTR -1256[rbp]
	setl	al
	movzx	eax, al
	mov	DWORD PTR -1248[rbp], eax
	mov	eax, DWORD PTR -1248[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__CPROVER_assume@PLT
	mov	eax, 0
	call	__VERIFIER_nondet_ushort@PLT
	mov	WORD PTR -1262[rbp], ax
	cmp	WORD PTR -1262[rbp], 0
	je	.L928
	cmp	WORD PTR -1262[rbp], 1
	je	.L929
	cmp	WORD PTR -1262[rbp], 2
	je	.L930
	cmp	WORD PTR -1262[rbp], 3
	je	.L931
	cmp	WORD PTR -1262[rbp], 4
	je	.L932
	cmp	WORD PTR -1262[rbp], 5
	je	.L933
	cmp	WORD PTR -1262[rbp], 6
	jne	.L934
	jmp	.L926
.L928:
	nop
.L897:
	movzx	eax, WORD PTR -1264[rbp]
	mov	DWORD PTR -1236[rbp], eax
	mov	eax, DWORD PTR -1236[rbp]
	mov	edi, eax
	call	call_rq_function
	jmp	.L911
.L929:
	nop
.L899:
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -344[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -344[rbp]
	add	rax, rdx
	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 -328[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 48
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -312[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L935
	mov	DWORD PTR -1240[rbp], 32
	mov	eax, DWORD PTR -1240[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -296[rbp], rax
	mov	QWORD PTR -288[rbp], 24
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -280[rbp], rax
	mov	rdx, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR -288[rbp]
	add	rax, rdx
	mov	QWORD PTR -272[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, rdx
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -264[rbp]
	mov	rdx, QWORD PTR -296[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -256[rbp], 24
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -248[rbp], rax
	mov	rdx, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR -256[rbp]
	add	rax, rdx
	mov	QWORD PTR -240[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -240[rbp]
	add	rax, rdx
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -224[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 24
	mov	QWORD PTR -208[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -200[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, rdx
	mov	QWORD PTR -192[rbp], rax
	mov	rdx, QWORD PTR -192[rbp]
	mov	rax, QWORD PTR -208[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -184[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -184[rbp]
	add	rax, rdx
	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 -168[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 48
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -136[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	mov	QWORD PTR -120[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -120[rbp]
	add	rax, rdx
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	QWORD PTR -104[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 32
	mov	QWORD PTR -88[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -88[rbp]
	add	rax, rdx
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rdx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -104[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L935
.L930:
	nop
.L901:
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -544[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -544[rbp]
	add	rax, rdx
	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 -528[rbp]
	mov	QWORD PTR -520[rbp], rax
	mov	rax, QWORD PTR -520[rbp]
	add	rax, 48
	mov	QWORD PTR -512[rbp], rax
	mov	rax, QWORD PTR -512[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -504[rbp], rax
	mov	rax, QWORD PTR -504[rbp]
	mov	QWORD PTR -496[rbp], rax
	mov	rax, QWORD PTR -496[rbp]
	add	rax, 8
	mov	QWORD PTR -488[rbp], rax
	mov	rax, QWORD PTR -488[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L936
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -480[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -480[rbp]
	add	rax, rdx
	mov	QWORD PTR -472[rbp], rax
	mov	rax, QWORD PTR -472[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -464[rbp], rax
	mov	rax, QWORD PTR -464[rbp]
	mov	QWORD PTR -456[rbp], rax
	mov	rax, QWORD PTR -456[rbp]
	add	rax, 48
	mov	QWORD PTR -448[rbp], rax
	mov	rax, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -440[rbp], rax
	mov	rax, QWORD PTR -440[rbp]
	mov	QWORD PTR -432[rbp], rax
	mov	rax, QWORD PTR -432[rbp]
	add	rax, 8
	mov	QWORD PTR -424[rbp], rax
	mov	rax, QWORD PTR -424[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -416[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -408[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 8
	mov	QWORD PTR -400[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -400[rbp]
	add	rax, rdx
	mov	QWORD PTR -392[rbp], rax
	mov	rax, QWORD PTR -392[rbp]
	mov	QWORD PTR -384[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -376[rbp], rax
	mov	rax, QWORD PTR -376[rbp]
	add	rax, 32
	mov	QWORD PTR -368[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -368[rbp]
	add	rax, rdx
	mov	QWORD PTR -360[rbp], rax
	mov	rax, QWORD PTR -360[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rdx, QWORD PTR -352[rbp]
	mov	rax, QWORD PTR -384[rbp]
	mov	rcx, QWORD PTR -416[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L936
.L931:
	nop
.L903:
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -752[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -752[rbp]
	add	rax, rdx
	mov	QWORD PTR -744[rbp], rax
	mov	rax, QWORD PTR -744[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -736[rbp], rax
	mov	rax, QWORD PTR -736[rbp]
	mov	QWORD PTR -728[rbp], rax
	mov	rax, QWORD PTR -728[rbp]
	add	rax, 48
	mov	QWORD PTR -720[rbp], rax
	mov	rax, QWORD PTR -720[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -712[rbp], rax
	mov	rax, QWORD PTR -712[rbp]
	mov	QWORD PTR -704[rbp], rax
	mov	rax, QWORD PTR -704[rbp]
	add	rax, 16
	mov	QWORD PTR -696[rbp], rax
	mov	rax, QWORD PTR -696[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L937
	mov	eax, 0
	call	__VERIFIER_nondet_uint@PLT
	mov	DWORD PTR -1244[rbp], eax
	mov	eax, 0
	call	__VERIFIER_nondet_ulong@PLT
	mov	QWORD PTR -688[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -680[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -680[rbp]
	add	rax, rdx
	mov	QWORD PTR -672[rbp], rax
	mov	rax, QWORD PTR -672[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -664[rbp], rax
	mov	rax, QWORD PTR -664[rbp]
	mov	QWORD PTR -656[rbp], rax
	mov	rax, QWORD PTR -656[rbp]
	add	rax, 48
	mov	QWORD PTR -648[rbp], rax
	mov	rax, QWORD PTR -648[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -640[rbp], rax
	mov	rax, QWORD PTR -640[rbp]
	mov	QWORD PTR -632[rbp], rax
	mov	rax, QWORD PTR -632[rbp]
	add	rax, 16
	mov	QWORD PTR -624[rbp], rax
	mov	rax, QWORD PTR -624[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -616[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -608[rbp], rax
	mov	rax, QWORD PTR -608[rbp]
	add	rax, 8
	mov	QWORD PTR -600[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -600[rbp]
	add	rax, rdx
	mov	QWORD PTR -592[rbp], rax
	mov	rax, QWORD PTR -592[rbp]
	mov	QWORD PTR -584[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -576[rbp], rax
	mov	rax, QWORD PTR -576[rbp]
	add	rax, 32
	mov	QWORD PTR -568[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -568[rbp]
	add	rax, rdx
	mov	QWORD PTR -560[rbp], rax
	mov	rax, QWORD PTR -560[rbp]
	mov	QWORD PTR -552[rbp], rax
	mov	rcx, QWORD PTR -688[rbp]
	mov	edx, DWORD PTR -1244[rbp]
	mov	rsi, QWORD PTR -552[rbp]
	mov	rax, QWORD PTR -584[rbp]
	mov	r8, QWORD PTR -616[rbp]
	mov	rdi, rax
	call	r8
	jmp	.L937
.L932:
	nop
.L905:
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -912[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -912[rbp]
	add	rax, rdx
	mov	QWORD PTR -904[rbp], rax
	mov	rax, QWORD PTR -904[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -896[rbp], rax
	mov	rax, QWORD PTR -896[rbp]
	mov	QWORD PTR -888[rbp], rax
	mov	rax, QWORD PTR -888[rbp]
	add	rax, 48
	mov	QWORD PTR -880[rbp], rax
	mov	rax, QWORD PTR -880[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -872[rbp], rax
	mov	rax, QWORD PTR -872[rbp]
	mov	QWORD PTR -864[rbp], rax
	mov	rax, QWORD PTR -864[rbp]
	add	rax, 48
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -856[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L938
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -848[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -848[rbp]
	add	rax, rdx
	mov	QWORD PTR -840[rbp], rax
	mov	rax, QWORD PTR -840[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -832[rbp], rax
	mov	rax, QWORD PTR -832[rbp]
	mov	QWORD PTR -824[rbp], rax
	mov	rax, QWORD PTR -824[rbp]
	add	rax, 48
	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 -808[rbp]
	mov	QWORD PTR -800[rbp], rax
	mov	rax, QWORD PTR -800[rbp]
	add	rax, 48
	mov	QWORD PTR -792[rbp], rax
	mov	rax, QWORD PTR -792[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -784[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -776[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -776[rbp]
	add	rax, rdx
	mov	QWORD PTR -768[rbp], rax
	mov	rax, QWORD PTR -768[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -760[rbp], rax
	mov	rax, QWORD PTR -760[rbp]
	mov	rdx, QWORD PTR -784[rbp]
	mov	rdi, rax
	call	rdx
	jmp	.L938
.L933:
	nop
.L907:
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -1072[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -1072[rbp]
	add	rax, rdx
	mov	QWORD PTR -1064[rbp], rax
	mov	rax, QWORD PTR -1064[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1056[rbp], rax
	mov	rax, QWORD PTR -1056[rbp]
	mov	QWORD PTR -1048[rbp], rax
	mov	rax, QWORD PTR -1048[rbp]
	add	rax, 48
	mov	QWORD PTR -1040[rbp], rax
	mov	rax, QWORD PTR -1040[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1032[rbp], rax
	mov	rax, QWORD PTR -1032[rbp]
	mov	QWORD PTR -1024[rbp], rax
	mov	rax, QWORD PTR -1024[rbp]
	add	rax, 56
	mov	QWORD PTR -1016[rbp], rax
	mov	rax, QWORD PTR -1016[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L939
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -1008[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -1008[rbp]
	add	rax, rdx
	mov	QWORD PTR -1000[rbp], rax
	mov	rax, QWORD PTR -1000[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -992[rbp], rax
	mov	rax, QWORD PTR -992[rbp]
	mov	QWORD PTR -984[rbp], rax
	mov	rax, QWORD PTR -984[rbp]
	add	rax, 48
	mov	QWORD PTR -976[rbp], rax
	mov	rax, QWORD PTR -976[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -968[rbp], rax
	mov	rax, QWORD PTR -968[rbp]
	mov	QWORD PTR -960[rbp], rax
	mov	rax, QWORD PTR -960[rbp]
	add	rax, 56
	mov	QWORD PTR -952[rbp], rax
	mov	rax, QWORD PTR -952[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -944[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -936[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -936[rbp]
	add	rax, rdx
	mov	QWORD PTR -928[rbp], rax
	mov	rax, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -920[rbp], rax
	mov	rax, QWORD PTR -920[rbp]
	mov	rdx, QWORD PTR -944[rbp]
	mov	rdi, rax
	call	rdx
	jmp	.L939
.L926:
.L909:
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -1232[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -1232[rbp]
	add	rax, rdx
	mov	QWORD PTR -1224[rbp], rax
	mov	rax, QWORD PTR -1224[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1216[rbp], rax
	mov	rax, QWORD PTR -1216[rbp]
	mov	QWORD PTR -1208[rbp], rax
	mov	rax, QWORD PTR -1208[rbp]
	add	rax, 48
	mov	QWORD PTR -1200[rbp], rax
	mov	rax, QWORD PTR -1200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1192[rbp], rax
	mov	rax, QWORD PTR -1192[rbp]
	mov	QWORD PTR -1184[rbp], rax
	mov	rax, QWORD PTR -1184[rbp]
	add	rax, 64
	mov	QWORD PTR -1176[rbp], rax
	mov	rax, QWORD PTR -1176[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L940
	lea	rax, -48[rbp]
	add	rax, 24
	mov	QWORD PTR -1168[rbp], rax
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -1160[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -1160[rbp]
	add	rax, rdx
	mov	QWORD PTR -1152[rbp], rax
	mov	rdx, QWORD PTR -1152[rbp]
	mov	rax, QWORD PTR -1168[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	movzx	edx, WORD PTR -1264[rbp]
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -1144[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -1144[rbp]
	add	rax, rdx
	mov	QWORD PTR -1136[rbp], rax
	mov	rax, QWORD PTR -1136[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1128[rbp], rax
	mov	rax, QWORD PTR -1128[rbp]
	mov	QWORD PTR -1120[rbp], rax
	mov	rax, QWORD PTR -1120[rbp]
	add	rax, 48
	mov	QWORD PTR -1112[rbp], rax
	mov	rax, QWORD PTR -1112[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1104[rbp], rax
	mov	rax, QWORD PTR -1104[rbp]
	mov	QWORD PTR -1096[rbp], rax
	mov	rax, QWORD PTR -1096[rbp]
	add	rax, 64
	mov	QWORD PTR -1088[rbp], rax
	mov	rax, QWORD PTR -1088[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -1080[rbp], rax
	lea	rdx, -64[rbp]
	lea	rax, -48[rbp]
	mov	rcx, QWORD PTR -1080[rbp]
	mov	rsi, rdx
	mov	rdi, rax
	call	rcx
	jmp	.L940
.L934:
	nop
.L910:
	jmp	.L911
.L935:
	nop
	jmp	.L893
.L936:
	nop
	jmp	.L893
.L937:
	nop
	jmp	.L893
.L938:
	nop
	jmp	.L893
.L939:
	nop
	jmp	.L893
.L940:
	nop
.L911:
	jmp	.L893
.L927:
	nop
.L893:
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L919
	call	__stack_chk_fail@PLT
.L919:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE158:
	.size	call_genhd_functions, .-call_genhd_functions
	.globl	register_blkdev
	.type	register_blkdev, @function
register_blkdev:
.LFB159:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	QWORD PTR -32[rbp], rsi
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE159:
	.size	register_blkdev, .-register_blkdev
	.globl	unregister_blkdev
	.type	unregister_blkdev, @function
unregister_blkdev:
.LFB160:
	.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
.LFE160:
	.size	unregister_blkdev, .-unregister_blkdev
	.globl	alloc_disk
	.type	alloc_disk, @function
alloc_disk:
.LFB161:
	.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 -68[rbp], edi
	movzx	eax, WORD PTR number_fixed_genhd_used[rip]
	cwde
	mov	DWORD PTR -60[rbp], eax
	cmp	DWORD PTR -60[rbp], 9
	jg	.L946
	movzx	eax, WORD PTR number_fixed_genhd_used[rip]
	movsx	rdx, ax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -40[rbp], rax
	lea	rdx, fixed_gendisk[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	QWORD PTR -24[rbp], rax
	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	edx, DWORD PTR -68[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, WORD PTR number_fixed_genhd_used[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_fixed_genhd_used[rip], ax
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L947
.L946:
	mov	QWORD PTR -48[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
.L947:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE161:
	.size	alloc_disk, .-alloc_disk
	.globl	add_disk
	.type	add_disk, @function
add_disk:
.LFB162:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 144
	mov	QWORD PTR -136[rbp], rdi
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	mov	DWORD PTR -128[rbp], eax
	cmp	DWORD PTR -128[rbp], 9
	jg	.L951
	movzx	eax, WORD PTR number_genhd_registered[rip]
	movsx	rdx, ax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -112[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -112[rbp]
	add	rax, rdx
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -104[rbp]
	mov	rdx, QWORD PTR -136[rbp]
	mov	QWORD PTR [rax], rdx
	mov	DWORD PTR -124[rbp], 32
	mov	eax, DWORD PTR -124[rbp]
	mov	edi, eax
	call	malloc@PLT
	mov	QWORD PTR -96[rbp], rax
	mov	QWORD PTR -88[rbp], 24
	movzx	eax, WORD PTR number_genhd_registered[rip]
	movsx	rdx, ax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	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, genhd_registered[rip]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	QWORD PTR [rax], rdx
	mov	QWORD PTR -56[rbp], 24
	movzx	eax, WORD PTR number_genhd_registered[rip]
	movsx	rdx, ax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	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, genhd_registered[rip]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -24[rbp], rax
	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	rdx, QWORD PTR -136[rbp]
	mov	QWORD PTR [rax], rdx
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	mov	DWORD PTR -120[rbp], eax
	mov	eax, DWORD PTR -120[rbp]
	add	eax, 1
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -116[rbp]
	mov	WORD PTR number_genhd_registered[rip], ax
	nop
.L951:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE162:
	.size	add_disk, .-add_disk
	.globl	del_gendisk
	.type	del_gendisk, @function
del_gendisk:
.LFB163:
	.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 -88[rbp], rdi
	mov	DWORD PTR -72[rbp], 0
.L953:
	movzx	eax, WORD PTR number_genhd_registered[rip]
	cwde
	mov	DWORD PTR -68[rbp], eax
	mov	eax, DWORD PTR -72[rbp]
	cmp	eax, DWORD PTR -68[rbp]
	jge	.L959
	mov	rax, QWORD PTR -88[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR -72[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -56[rbp], rax
	lea	rdx, genhd_registered[rip]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, rdx
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	cmp	rax, QWORD PTR -64[rbp]
	jne	.L956
	mov	eax, DWORD PTR -72[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -24[rbp], rax
	lea	rdx, genhd_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
.L956:
	add	DWORD PTR -72[rbp], 1
	jmp	.L953
.L959:
	nop
.L955:
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE163:
	.size	del_gendisk, .-del_gendisk
	.globl	fixed_request_queue
	.bss
	.align 32
	.type	fixed_request_queue, @object
	.size	fixed_request_queue, 880
fixed_request_queue:
	.zero	880
	.globl	number_request_queue_used
	.align 4
	.type	number_request_queue_used, @object
	.size	number_request_queue_used, 4
number_request_queue_used:
	.zero	4
	.text
	.globl	get_fixed_request_queue
	.type	get_fixed_request_queue, @function
get_fixed_request_queue:
.LFB164:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR number_request_queue_used[rip]
	cmp	eax, 9
	jg	.L961
	mov	eax, DWORD PTR number_request_queue_used[rip]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR number_request_queue_used[rip]
	add	eax, 1
	mov	DWORD PTR number_request_queue_used[rip], eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 3
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, fixed_request_queue[rip]
	mov	rax, QWORD PTR -16[rbp]
	add	rax, rdx
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L962
.L961:
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -24[rbp]
.L962:
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE164:
	.size	get_fixed_request_queue, .-get_fixed_request_queue
	.globl	blk_init_queue
	.type	blk_init_queue, @function
blk_init_queue:
.LFB165:
	.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	QWORD PTR -88[rbp], rdi
	mov	QWORD PTR -96[rbp], rsi
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -76[rbp], eax
	cmp	DWORD PTR -76[rbp], 0
	je	.L964
	call	get_fixed_request_queue
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 64
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -96[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	rdx, QWORD PTR -88[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -64[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 80
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -64[rbp]
	jmp	.L965
.L964:
	mov	QWORD PTR -72[rbp], 0
	mov	rax, QWORD PTR -72[rbp]
.L965:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE165:
	.size	blk_init_queue, .-blk_init_queue
	.globl	blk_alloc_queue
	.type	blk_alloc_queue, @function
blk_alloc_queue:
.LFB166:
	.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 -84[rbp], edi
	mov	eax, 0
	call	__VERIFIER_nondet_int@PLT
	mov	DWORD PTR -68[rbp], eax
	cmp	DWORD PTR -68[rbp], 0
	je	.L967
	call	get_fixed_request_queue
	mov	QWORD PTR -56[rbp], rax
	mov	QWORD PTR -48[rbp], 0
	mov	rdx, QWORD PTR -48[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	rax, QWORD PTR -56[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	QWORD PTR -32[rbp], rax
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rdx, QWORD PTR -24[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, 80
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], 1
	mov	rax, QWORD PTR -56[rbp]
	jmp	.L968
.L967:
	mov	QWORD PTR -64[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
.L968:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE166:
	.size	blk_alloc_queue, .-blk_alloc_queue
	.globl	blk_queue_make_request
	.type	blk_queue_make_request, @function
blk_queue_make_request:
.LFB167:
	.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
.LFE167:
	.size	blk_queue_make_request, .-blk_queue_make_request
	.globl	end_request
	.type	end_request, @function
end_request:
.LFB168:
	.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 -104[rbp], rdi
	mov	DWORD PTR -108[rbp], esi
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 88
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 56
	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, 76
	mov	QWORD PTR -32[rbp], rax
	mov	rax, QWORD PTR -32[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 4
	sub	rax, rdx
	sal	rax, 4
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	add	rax, 232
	mov	QWORD PTR -16[rbp], rax
	lea	rdx, genhd_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
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE168:
	.size	end_request, .-end_request
	.globl	blk_queue_hardsect_size
	.type	blk_queue_hardsect_size, @function
blk_queue_hardsect_size:
.LFB169:
	.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	eax, esi
	mov	WORD PTR -28[rbp], ax
	mov	rax, QWORD PTR -24[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	add	rax, 72
	mov	QWORD PTR -8[rbp], rax
	mov	rax, QWORD PTR -8[rbp]
	movzx	edx, WORD PTR -28[rbp]
	mov	WORD PTR [rax], dx
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE169:
	.size	blk_queue_hardsect_size, .-blk_queue_hardsect_size
	.globl	blk_cleanup_queue
	.type	blk_cleanup_queue, @function
blk_cleanup_queue:
.LFB170:
	.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, 80
	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
.LFE170:
	.size	blk_cleanup_queue, .-blk_cleanup_queue
	.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	"36075517.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
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	dev_get_drvdata, %function
dev_get_drvdata:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	dev_get_drvdata, .-dev_get_drvdata
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	dev_set_drvdata, %function
dev_set_drvdata:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	dev_set_drvdata, .-dev_set_drvdata
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	iminor, %function
iminor:
	@ 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]
	mov	r3, #1048576
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	and	r3, r3, r2
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	iminor, .-iminor
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_read_config_byte, %function
pci_read_config_byte:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	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	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	pci_bus_read_config_byte
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_read_config_byte, .-pci_read_config_byte
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_read_config_word, %function
pci_read_config_word:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	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	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	pci_bus_read_config_word
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_read_config_word, .-pci_read_config_word
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_read_config_dword, %function
pci_read_config_dword:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r2, [fp, #-40]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	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	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-12]
	ldr	r0, [fp, #-24]
	bl	pci_bus_read_config_dword
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_read_config_dword, .-pci_read_config_dword
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_get_drvdata, %function
pci_get_drvdata:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #32
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	dev_get_drvdata
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_get_drvdata, .-pci_get_drvdata
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_set_drvdata, %function
pci_set_drvdata:
	@ 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]
	str	r1, [fp, #-28]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #32
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-28]
	ldr	r0, [fp, #-8]
	bl	dev_set_drvdata
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_set_drvdata, .-pci_set_drvdata
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_capacity, %function
set_capacity:
	@ 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, #72
	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	set_capacity, .-set_capacity
	.comm	current_stack_pointer,4,4
	.global	_ddv_module_author
	.data
	.align	2
	.type	_ddv_module_author, %object
	.size	_ddv_module_author, 28
_ddv_module_author:
	.ascii	"Compaq Computer Corporation\000"
	.global	_ddv_module_description
	.align	2
	.type	_ddv_module_description, %object
	.size	_ddv_module_description, 57
_ddv_module_description:
	.ascii	"Driver for Compaq Smart2 Array Controllers version "
	.ascii	"2.6.0\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
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart4_submit_command, %function
smart4_submit_command:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #284
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #72
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #64
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	writel
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart4_submit_command, .-smart4_submit_command
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart4_intr_mask, %function
smart4_intr_mask:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L32
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #72
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #52
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	mov	r0, #0
	bl	writel
	b	.L31
.L32:
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #72
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #52
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	mov	r0, #8
	bl	writel
	nop
.L31:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart4_intr_mask, .-smart4_intr_mask
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart4_fifo_full, %function
smart4_fifo_full:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #72
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #64
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	readl
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L36
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L37
.L36:
	mov	r3, #1
	str	r3, [fp, #-32]
.L37:
	ldr	r3, [fp, #-32]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart4_fifo_full, .-smart4_fifo_full
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart4_completed, %function
smart4_completed:
	@ 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, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #72
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r3, r3, #68
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-32]
	bl	readl
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #72
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #68
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	mov	r0, #0
	bl	writel
	ldr	r3, [fp, #-24]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart4_completed, .-smart4_completed
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart4_intr_pending, %function
smart4_intr_pending:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #72
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #48
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	readl
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #8
	cmp	r3, #0
	beq	.L42
	mov	r3, #1
	b	.L43
.L42:
	mov	r3, #0
.L43:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart4_intr_pending, .-smart4_intr_pending
	.data
	.align	2
	.type	smart4_access, %object
	.size	smart4_access, 20
smart4_access:
	.word	smart4_submit_command
	.word	smart4_intr_mask
	.word	smart4_fifo_full
	.word	smart4_intr_pending
	.word	smart4_completed
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2_submit_command, %function
smart2_submit_command:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #284
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #72
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	writel
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2_submit_command, .-smart2_submit_command
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2_intr_mask, %function
smart2_intr_mask:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #72
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #12
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-24]
	bl	writel
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2_intr_mask, .-smart2_intr_mask
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2_fifo_full, %function
smart2_fifo_full:
	@ 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]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #72
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	readl
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2_fifo_full, .-smart2_fifo_full
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2_completed, %function
smart2_completed:
	@ 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]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #72
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	readl
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2_completed, .-smart2_completed
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2_intr_pending, %function
smart2_intr_pending:
	@ 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]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #72
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #20
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	readl
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2_intr_pending, .-smart2_intr_pending
	.data
	.align	2
	.type	smart2_access, %object
	.size	smart2_access, 20
smart2_access:
	.word	smart2_submit_command
	.word	smart2_intr_mask
	.word	smart2_fifo_full
	.word	smart2_intr_pending
	.word	smart2_completed
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2e_submit_command, %function
smart2e_submit_command:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	str	r1, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #284
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #88
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #4
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-28]
	bl	outl
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2e_submit_command, .-smart2e_submit_command
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2e_intr_mask, %function
smart2e_intr_mask:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #88
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #12
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-28]
	bl	outl
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2e_intr_mask, .-smart2e_intr_mask
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2e_fifo_full, %function
smart2e_fifo_full:
	@ 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]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #88
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	inl
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2e_fifo_full, .-smart2e_fifo_full
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2e_completed, %function
smart2e_completed:
	@ 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]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #88
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	inl
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2e_completed, .-smart2e_completed
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart2e_intr_pending, %function
smart2e_intr_pending:
	@ 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]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #88
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #20
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	inl
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart2e_intr_pending, .-smart2e_intr_pending
	.data
	.align	2
	.type	smart2e_access, %object
	.size	smart2e_access, 20
smart2e_access:
	.word	smart2e_submit_command
	.word	smart2e_intr_mask
	.word	smart2e_fifo_full
	.word	smart2e_intr_pending
	.word	smart2e_completed
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart1_submit_command, %function
smart1_submit_command:
	@ args = 0, pretend = 0, frame = 128
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #128
	str	r0, [fp, #-128]
	str	r1, [fp, #-132]
	mov	r3, #2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-116]
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	add	r3, r3, #88
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	add	r3, r3, #3200
	add	r3, r3, #15
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-92]
	ldr	r1, [fp, #-92]
	mov	r0, #2
	bl	outb
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	add	r3, r3, #284
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #88
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	add	r3, r3, #3216
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-60]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-80]
	bl	outl
	ldr	r3, [fp, #-132]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #276
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	strh	r3, [fp, #-122]	@ movhi
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #88
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #3216
	add	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldrh	r3, [fp, #-122]
	ldr	r1, [fp, #-28]
	mov	r0, r3
	bl	outw
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #88
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3200
	add	r3, r3, #13
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	mov	r0, #1
	bl	outb
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart1_submit_command, .-smart1_submit_command
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart1_intr_mask, %function
smart1_intr_mask:
	@ 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, #-112]
	str	r1, [fp, #-116]
	ldr	r3, [fp, #-116]
	cmp	r3, #1
	bne	.L67
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #88
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #3200
	add	r3, r3, #15
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-68]
	ldr	r1, [fp, #-68]
	mov	r0, #253
	bl	outb
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	add	r3, r3, #88
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #3200
	add	r3, r3, #13
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r1, [fp, #-48]
	mov	r0, #1
	bl	outb
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #88
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #3200
	add	r3, r3, #9
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r1, [fp, #-28]
	mov	r0, #1
	bl	outb
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #88
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #3200
	add	r3, r3, #14
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	mov	r0, #1
	bl	outb
	b	.L66
.L67:
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	add	r3, r3, #88
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	add	r3, r3, #3200
	add	r3, r3, #14
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	str	r3, [fp, #-88]
	ldr	r1, [fp, #-88]
	mov	r0, #0
	bl	outb
	nop
.L66:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart1_intr_mask, .-smart1_intr_mask
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart1_fifo_full, %function
smart1_fifo_full:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #88
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #3200
	add	r3, r3, #15
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-34]
	ldrb	r3, [fp, #-34]	@ zero_extendqisi2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	and	r3, r3, #2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	strb	r3, [fp, #-33]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart1_fifo_full, .-smart1_fifo_full
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart1_completed, %function
smart1_completed:
	@ args = 0, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #152
	str	r0, [fp, #-152]
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	add	r3, r3, #88
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	add	r3, r3, #3200
	add	r3, r3, #15
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-120]
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-142]
	ldrb	r3, [fp, #-142]	@ zero_extendqisi2
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L73
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	add	r3, r3, #88
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	add	r3, r3, #3200
	add	r3, r3, #15
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r1, [fp, #-96]
	mov	r0, #1
	bl	outb
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	add	r3, r3, #88
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #3216
	add	r3, r3, #8
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-76]
	ldr	r0, [fp, #-76]
	bl	inl
	str	r0, [fp, #-72]
	ldr	r3, [fp, #-72]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	add	r3, r3, #88
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #3216
	add	r3, r3, #14
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r0, [fp, #-52]
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-141]
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #88
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r3, r3, #3200
	add	r3, r3, #13
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r1, [fp, #-32]
	mov	r0, #2
	bl	outb
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	beq	.L74
	ldr	r0, [fp, #-140]
	bl	phys_to_virt
	str	r0, [fp, #-28]
	mov	r3, #3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #4
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrb	r2, [fp, #-141]
	strb	r2, [r3]
	b	.L74
.L73:
	mov	r3, #0
	str	r3, [fp, #-140]
.L74:
	ldr	r3, [fp, #-140]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart1_completed, .-smart1_completed
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smart1_intr_pending, %function
smart1_intr_pending:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #88
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #3200
	add	r3, r3, #15
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-34]
	ldrb	r3, [fp, #-34]	@ zero_extendqisi2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	and	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	strb	r3, [fp, #-33]
	ldrb	r3, [fp, #-33]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smart1_intr_pending, .-smart1_intr_pending
	.data
	.align	2
	.type	smart1_access, %object
	.size	smart1_access, 20
smart1_access:
	.word	smart1_submit_command
	.word	smart1_intr_mask
	.word	smart1_fifo_full
	.word	smart1_intr_pending
	.word	smart1_completed
	.comm	nr_ctlr,4,4
	.comm	hba,32,4
	.comm	eisa,32,4
	.global	products
	.section	.rodata
	.align	2
.LC1:
	.ascii	"IDA\000"
	.align	2
.LC2:
	.ascii	"IDA-2\000"
	.align	2
.LC3:
	.ascii	"IAES\000"
	.align	2
.LC4:
	.ascii	"SMART\000"
	.align	2
.LC5:
	.ascii	"SMART-2/E\000"
	.align	2
.LC6:
	.ascii	"SMART-2/P\000"
	.align	2
.LC7:
	.ascii	"SMART-2SL\000"
	.align	2
.LC8:
	.ascii	"Smart Array 3200\000"
	.align	2
.LC9:
	.ascii	"Smart Array 3100ES\000"
	.align	2
.LC10:
	.ascii	"Smart Array 221\000"
	.align	2
.LC11:
	.ascii	"Integrated Array\000"
	.align	2
.LC12:
	.ascii	"Compaq Raid LC2\000"
	.align	2
.LC13:
	.ascii	"Smart Array 4200\000"
	.align	2
.LC14:
	.ascii	"Smart Array 4250ES\000"
	.align	2
.LC15:
	.ascii	"Smart Array 431\000"
	.data
	.align	2
	.type	products, %object
	.size	products, 180
products:
	.word	4198670
	.word	.LC1
	.word	smart1_access
	.word	20975886
	.word	.LC2
	.word	smart1_access
	.word	272634126
	.word	.LC3
	.word	smart1_access
	.word	541069582
	.word	.LC4
	.word	smart1_access
	.word	809505038
	.word	.LC5
	.word	smart2e_access
	.word	1076891153
	.word	.LC6
	.word	smart2_access
	.word	1076956689
	.word	.LC7
	.word	smart2_access
	.word	1077022225
	.word	.LC8
	.word	smart2_access
	.word	1077087761
	.word	.LC9
	.word	smart2_access
	.word	1077153297
	.word	.LC10
	.word	smart2_access
	.word	1077939729
	.word	.LC11
	.word	smart4_access
	.word	1078464017
	.word	.LC12
	.word	smart4_access
	.word	1078988305
	.word	.LC13
	.word	smart4_access
	.word	1079053841
	.word	.LC14
	.word	smart4_access
	.word	1079512593
	.word	.LC15
	.word	smart4_access
	.global	cpqarray_pci_device_id
	.section	.rodata
	.align	2
	.type	cpqarray_pci_device_id, %object
	.size	cpqarray_pci_device_id, 308
cpqarray_pci_device_id:
	.word	4113
	.word	70
	.word	3601
	.word	16472
	.word	0
	.word	0
	.word	0
	.word	4113
	.word	70
	.word	3601
	.word	16465
	.word	0
	.word	0
	.word	0
	.word	4113
	.word	70
	.word	3601
	.word	16464
	.word	0
	.word	0
	.word	0
	.word	4096
	.word	16
	.word	3601
	.word	16456
	.word	0
	.word	0
	.word	0
	.word	4096
	.word	16
	.word	3601
	.word	16448
	.word	0
	.word	0
	.word	0
	.word	3601
	.word	44560
	.word	3601
	.word	16436
	.word	0
	.word	0
	.word	0
	.word	3601
	.word	44560
	.word	3601
	.word	16435
	.word	0
	.word	0
	.word	0
	.word	3601
	.word	44560
	.word	3601
	.word	16434
	.word	0
	.word	0
	.word	0
	.word	3601
	.word	44560
	.word	3601
	.word	16433
	.word	0
	.word	0
	.word	0
	.word	3601
	.word	44560
	.word	3601
	.word	16432
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.word	0
	.comm	ida_gendisk,512,4
	.global	ida_fops
	.data
	.align	2
	.type	ida_fops, %object
	.size	ida_fops, 40
ida_fops:
	.word	ida_open
	.word	ida_release
	.word	ida_ioctl
	.word	0
	.word	0
	.word	0
	.word	0
	.word	ida_revalidate
	.word	ida_getgeo
	.word	__this_module
	.comm	proc_array,4,4
	.section	.rodata
	.align	2
.LC16:
	.ascii	"cpqarray\000"
	.text
	.align	2
	.global	ida_procinit
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_procinit, %function
ida_procinit:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	str	r0, [fp, #-64]
	mov	r3, #0
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-56]
	ldr	r3, .L82
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	bne	.L79
	ldr	r3, .L82+4
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L82+8
	bl	proc_mkdir
	mov	r3, r0
	ldr	r2, .L82
	str	r3, [r2]
	ldr	r3, .L82
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L81
.L79:
	mov	r3, #0
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	str	r3, [fp, #-40]
	ldr	r2, .L82+12
	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	r2, [fp, #-28]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r2, .L82+12
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, .L82
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	str	r3, [sp]
	ldr	r3, .L82+16
	mov	r1, #0
	ldr	r0, [fp, #-20]
	bl	create_proc_read_entry
	b	.L78
.L81:
	nop
.L78:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L83:
	.align	2
.L82:
	.word	proc_array
	.word	proc_root_driver
	.word	.LC16
	.word	hba
	.word	ida_proc_get_info
	.size	ida_procinit, .-ida_procinit
	.section	.rodata
	.align	2
.LC17:
	.ascii	"%s:  Compaq %s Controller\012       Board ID: 0x%08"
	.ascii	"lx\012       Firmware Revision: %c%c%c%c\012       "
	.ascii	"Controller Sig: 0x%08lx\012       Memory Address: 0"
	.ascii	"x%08lx\012       I/O Port: 0x%04x\012       IRQ: %d"
	.ascii	"\012       Logical drives: %d\012       Physical dr"
	.ascii	"ives: %d\012\012       Current Q depth: %d\012     "
	.ascii	"  Max Q depth since init: %d\012\012\000"
	.align	2
.LC18:
	.ascii	"Logical Drive Info:\012\000"
	.align	2
.LC19:
	.ascii	"ida/c%dd%d: blksz=%d nr_blks=%d\012\000"
	.align	2
.LC20:
	.ascii	"nr_allocs = %d\012nr_frees = %d\012\000"
	.text
	.align	2
	.global	ida_proc_get_info
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_proc_get_info, %function
ida_proc_get_info:
	@ args = 8, pretend = 0, frame = 408
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #464
	str	r0, [fp, #-400]
	str	r1, [fp, #-404]
	str	r2, [fp, #-408]
	str	r3, [fp, #-412]
	mov	r3, #0
	str	r3, [fp, #-388]
	mov	r3, #0
	str	r3, [fp, #-384]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	ldr	r3, [r3]
	str	r3, [fp, #-372]
	mov	r3, #0
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-368]
	add	r3, r3, #4
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-360]
	ldr	r2, [fp, #-360]
	ldr	r3, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-348]
	add	r3, r3, #64
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3]
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	add	r3, r3, #56
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	ldr	r3, [r3]
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-328]
	str	r3, [fp, #-324]
	mov	r3, #0
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-320]
	add	r3, r3, #28
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-312]
	ldr	r2, [fp, #-312]
	ldr	r3, [fp, #-316]
	add	r3, r2, r3
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	ldrb	r3, [r3]
	strb	r3, [fp, #-392]
	ldrb	r3, [fp, #-392]	@ zero_extendqisi2
	str	r3, [fp, #-304]
	mov	r3, #1
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-300]
	add	r3, r3, #28
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-292]
	ldr	r2, [fp, #-292]
	ldr	r3, [fp, #-296]
	add	r3, r2, r3
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	ldrb	r3, [r3]
	strb	r3, [fp, #-391]
	ldrb	r3, [fp, #-391]	@ zero_extendqisi2
	str	r3, [fp, #-284]
	mov	r3, #2
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	add	r3, r3, #28
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-272]
	ldr	r2, [fp, #-272]
	ldr	r3, [fp, #-276]
	add	r3, r2, r3
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	ldrb	r3, [r3]
	strb	r3, [fp, #-390]
	ldrb	r3, [fp, #-390]	@ zero_extendqisi2
	str	r3, [fp, #-264]
	mov	r3, #3
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-260]
	add	r3, r3, #28
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-252]
	ldr	r2, [fp, #-252]
	ldr	r3, [fp, #-256]
	add	r3, r2, r3
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	ldrb	r3, [r3]
	strb	r3, [fp, #-389]
	ldrb	r3, [fp, #-389]	@ zero_extendqisi2
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	add	r3, r3, #32
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	add	r3, r3, #72
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	ldr	r3, [r3]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	add	r3, r3, #88
	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, #-376]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	add	r3, r3, #104
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	ldr	r3, [r3]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	add	r3, r3, #36
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	add	r3, r3, #40
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	add	r3, r3, #600
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	add	r3, r3, #604
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	str	r3, [sp, #48]
	ldr	r3, [fp, #-144]
	str	r3, [sp, #44]
	ldr	r3, [fp, #-156]
	str	r3, [sp, #40]
	ldr	r3, [fp, #-168]
	str	r3, [sp, #36]
	ldr	r3, [fp, #-180]
	str	r3, [sp, #32]
	ldr	r3, [fp, #-196]
	str	r3, [sp, #28]
	ldr	r3, [fp, #-212]
	str	r3, [sp, #24]
	ldr	r3, [fp, #-228]
	str	r3, [sp, #20]
	ldr	r3, [fp, #-244]
	str	r3, [sp, #16]
	ldr	r3, [fp, #-264]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-284]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-304]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-324]
	str	r3, [sp]
	ldr	r3, [fp, #-340]
	ldr	r2, [fp, #-352]
	ldr	r1, .L92
	ldr	r0, [fp, #-400]
	bl	sprintf
	str	r0, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-124]
	ldr	r2, [fp, #-388]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-120]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-384]
	ldr	r2, [fp, #-400]
	add	r3, r2, r3
	str	r3, [fp, #-116]
	ldr	r1, .L92+4
	ldr	r0, [fp, #-116]
	bl	sprintf
	str	r0, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-112]
	ldr	r2, [fp, #-388]
	ldr	r3, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-108]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-384]
	mov	r3, #0
	str	r3, [fp, #-380]
.L85:
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	add	r3, r3, #36
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-96]
	cmp	r2, r3
	bge	.L91
	ldr	r2, [fp, #-380]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	add	r3, r3, #112
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-384]
	ldr	r2, [fp, #-400]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #4
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [sp, #4]
	ldr	r3, [fp, #-28]
	str	r3, [sp]
	ldr	r3, [fp, #-380]
	ldr	r2, [fp, #-372]
	ldr	r1, .L92+8
	ldr	r0, [fp, #-32]
	bl	sprintf
	str	r0, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-388]
	ldr	r3, [fp, #-12]
	add	r3, r2, r3
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-380]
	add	r3, r3, #1
	str	r3, [fp, #-380]
	b	.L85
.L91:
	nop
.L87:
	ldr	r3, [fp, #-384]
	ldr	r2, [fp, #-400]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	add	r3, r3, #612
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #616
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-80]
	ldr	r1, .L92+12
	ldr	r0, [fp, #-92]
	bl	sprintf
	str	r0, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-388]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-384]
	ldr	r3, [fp, #4]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-408]
	ldr	r2, [fp, #-400]
	add	r2, r2, r3
	ldr	r3, [fp, #-404]
	str	r2, [r3]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-408]
	sub	r3, r2, r3
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-412]
	str	r3, [fp, #-56]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-56]
	cmp	r2, r3
	ble	.L88
	ldr	r3, [fp, #-412]
	str	r3, [fp, #-384]
.L88:
	ldr	r3, [fp, #-384]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L93:
	.align	2
.L92:
	.word	.LC17
	.word	.LC18
	.word	.LC19
	.word	.LC20
	.size	ida_proc_get_info, .-ida_proc_get_info
	.align	2
	.global	release_io_mem
	.syntax unified
	.arm
	.fpu softvfp
	.type	release_io_mem, %function
release_io_mem:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-64]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #88
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L97
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #88
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #96
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-36]
	bl	release_region
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #88
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #96
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	b	.L94
.L97:
	nop
.L94:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	release_io_mem, .-release_io_mem
	.section	.rodata
	.align	2
.LC21:
	.ascii	"<4>Unable to flush cache on controller %d\012\000"
	.align	2
.LC22:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cpqarray_remove_one
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_remove_one, %function
cpqarray_remove_one:
	@ args = 0, pretend = 0, frame = 440
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #456
	str	r0, [fp, #-440]
	ldr	r3, .L108
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mvn	r3, #61
	strb	r3, [fp, #-433]
	mov	r3, #0
	str	r3, [fp, #-428]
	sub	r3, fp, #12
	ldr	r2, [fp, #-428]
	add	r3, r2, r3
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-424]
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-420]
	str	r3, [fp, #-416]
	mov	r3, #4
	str	r3, [fp, #-412]
	ldrb	r0, [fp, #-433]	@ zero_extendqisi2
	mov	r3, #0
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-412]
	ldr	r2, [fp, #-416]
	ldr	r1, [fp, #-440]
	bl	sendcmd
	str	r0, [fp, #-408]
	ldr	r3, [fp, #-408]
	cmp	r3, #0
	beq	.L99
	ldr	r1, [fp, #-440]
	ldr	r0, .L108+4
	bl	printk
.L99:
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-404]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-404]
	add	r3, r3, r2
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-396]
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	add	r3, r3, #104
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-388]
	ldr	r3, [r3]
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-384]
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-376]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-376]
	add	r3, r3, r2
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-372]
	ldr	r3, [r3]
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-368]
	str	r3, [fp, #-364]
	ldr	r1, [fp, #-364]
	ldr	r0, [fp, #-380]
	bl	free_irq
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-360]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-360]
	add	r3, r3, r2
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	ldr	r3, [r3]
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-348]
	add	r3, r3, #72
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3]
	str	r3, [fp, #-340]
	ldr	r0, [fp, #-340]
	bl	iounmap
	ldr	r3, [fp, #-440]
	add	r3, r3, #72
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	str	r3, [fp, #-332]
	mov	r3, #0
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-328]
	add	r3, r3, #4
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-320]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-320]
	add	r3, r3, r2
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-316]
	ldr	r3, [r3]
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-312]
	str	r3, [fp, #-308]
	ldr	r2, [fp, #-308]
	ldr	r3, [fp, #-324]
	add	r3, r2, r3
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-300]
	str	r3, [fp, #-296]
	ldr	r1, [fp, #-296]
	ldr	r0, [fp, #-332]
	bl	unregister_blkdev
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-292]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-292]
	add	r3, r3, r2
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	ldr	r3, [r3]
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	add	r3, r3, #624
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-276]
	str	r3, [fp, #-272]
	ldr	r0, [fp, #-272]
	bl	del_timer
	mov	r3, #0
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	add	r3, r3, #4
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-260]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-260]
	add	r3, r3, r2
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	ldr	r3, [r3]
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	str	r3, [fp, #-248]
	ldr	r2, [fp, #-248]
	ldr	r3, [fp, #-264]
	add	r3, r2, r3
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-236]
	ldr	r3, .L108+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-236]
	bl	remove_proc_entry
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-232]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-232]
	add	r3, r3, r2
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	add	r3, r3, #48
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	str	r3, [fp, #-212]
	mov	r3, #41984
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-200]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-200]
	add	r3, r3, r2
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	ldr	r3, [r3]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	add	r3, r3, #560
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-172]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-172]
	add	r3, r3, r2
	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, #568
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	ldr	r3, [r3]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r2, [fp, #-176]
	ldr	r1, [fp, #-204]
	ldr	r0, [fp, #-212]
	bl	pci_free_consistent
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-148]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	add	r3, r3, #576
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-124]
	ldr	r0, [fp, #-124]
	bl	kfree
	mov	r3, #0
	str	r3, [fp, #-432]
.L100:
	ldr	r3, [fp, #-432]
	cmp	r3, #15
	bgt	.L107
	ldr	r3, [fp, #-432]
	lsl	r3, r3, #3
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #7
	str	r3, [fp, #-80]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-84]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r2, .L108+16
	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, #80
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L103
	ldr	r3, [fp, #-432]
	lsl	r3, r3, #3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #7
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r2, .L108+16
	ldr	r3, [fp, #-44]
	add	r3, r3, r2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-36]
	bl	del_gendisk
.L103:
	ldr	r3, [fp, #-432]
	lsl	r3, r3, #3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #7
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	add	r3, r2, r3
	str	r3, [fp, #-24]
	ldr	r2, .L108+16
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	put_disk
	ldr	r3, [fp, #-432]
	add	r3, r3, #1
	str	r3, [fp, #-432]
	b	.L100
.L107:
	nop
.L102:
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-120]
	ldr	r2, .L108+8
	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	r3, [fp, #-108]
	add	r3, r3, #584
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r0, [fp, #-100]
	bl	blk_cleanup_queue
	ldr	r3, [fp, #-440]
	lsl	r3, r3, #3
	str	r3, [fp, #-96]
	ldr	r2, .L108+8
	ldr	r3, [fp, #-96]
	add	r3, r3, r2
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r0, [fp, #-88]
	bl	release_io_mem
	ldr	r0, [fp, #-440]
	bl	free_hba
	nop
	ldr	r3, .L108
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L105
	bl	__stack_chk_fail
.L105:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L109:
	.align	2
.L108:
	.word	.LC22
	.word	.LC21
	.word	hba
	.word	proc_array
	.word	ida_gendisk
	.size	cpqarray_remove_one, .-cpqarray_remove_one
	.section	.rodata
	.align	2
.LC23:
	.ascii	"<3>cpqarray: Unable to remove device \012\000"
	.align	2
.LC24:
	.ascii	"<3>cpqarray: controller %d appears to havealready b"
	.ascii	"een removed \012\000"
	.text
	.align	2
	.global	cpqarray_remove_one_pci
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_remove_one_pci, %function
cpqarray_remove_one_pci:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-64]
	ldr	r0, [fp, #-64]
	bl	pci_get_drvdata
	str	r0, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-60]
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-52]
	cmp	r2, r3
	bne	.L111
	ldr	r0, .L114
	bl	printk
	b	.L110
.L111:
	ldr	r0, [fp, #-64]
	bl	pci_get_drvdata
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	str	r3, [fp, #-24]
	ldr	r2, .L114+4
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L113
	ldr	r1, [fp, #-36]
	ldr	r0, .L114+8
	bl	printk
	b	.L110
.L113:
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-64]
	bl	pci_set_drvdata
	ldr	r0, [fp, #-36]
	bl	cpqarray_remove_one
	nop
.L110:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L115:
	.align	2
.L114:
	.word	.LC23
	.word	hba
	.word	.LC24
	.size	cpqarray_remove_one_pci, .-cpqarray_remove_one_pci
	.align	2
	.global	cpqarray_remove_one_eisa
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_remove_one_eisa, %function
cpqarray_remove_one_eisa:
	@ 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]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L119
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bne	.L117
	ldr	r1, [fp, #-32]
	ldr	r0, .L119+4
	bl	printk
	b	.L116
.L117:
	ldr	r0, [fp, #-32]
	bl	cpqarray_remove_one
	nop
.L116:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L120:
	.align	2
.L119:
	.word	hba
	.word	.LC24
	.size	cpqarray_remove_one_eisa, .-cpqarray_remove_one_eisa
	.section	.rodata
	.align	2
.LC25:
	.ascii	"<3>cpqarray: Unable to get irq %d for %s\012\000"
	.align	2
.LC26:
	.ascii	"<6>cpqarray: Finding drives on %s\000"
	.align	2
.LC27:
	.ascii	"ida/c%dd%d\000"
	.align	2
.LC28:
	.ascii	"<3>cpqarray: out of memory\000"
	.text
	.align	2
	.global	cpqarray_register_ctlr
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_register_ctlr, %function
cpqarray_register_ctlr:
	@ args = 0, pretend = 0, frame = 1312
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1312
	sub	sp, sp, #12
	str	r0, [fp, #-1320]
	str	r1, [fp, #-1324]
	ldr	r3, [fp, #-1320]
	add	r3, r3, #72
	str	r3, [fp, #-1308]
	ldr	r3, [fp, #-1308]
	str	r3, [fp, #-1304]
	mov	r3, #0
	str	r3, [fp, #-1300]
	ldr	r3, [fp, #-1300]
	add	r3, r3, #4
	str	r3, [fp, #-1296]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1292]
	ldr	r2, .L160
	ldr	r3, [fp, #-1292]
	add	r3, r3, r2
	str	r3, [fp, #-1288]
	ldr	r3, [fp, #-1288]
	ldr	r3, [r3]
	str	r3, [fp, #-1284]
	ldr	r3, [fp, #-1284]
	str	r3, [fp, #-1280]
	ldr	r2, [fp, #-1280]
	ldr	r3, [fp, #-1296]
	add	r3, r2, r3
	str	r3, [fp, #-1276]
	ldr	r3, [fp, #-1276]
	str	r3, [fp, #-1272]
	ldr	r3, [fp, #-1272]
	str	r3, [fp, #-1268]
	ldr	r1, [fp, #-1268]
	ldr	r0, [fp, #-1304]
	bl	register_blkdev
	str	r0, [fp, #-1264]
	ldr	r3, [fp, #-1264]
	cmp	r3, #0
	bne	.L150
	mov	r3, #512
	str	r3, [fp, #-1260]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1256]
	ldr	r2, .L160
	ldr	r3, [fp, #-1256]
	add	r3, r3, r2
	str	r3, [fp, #-1252]
	ldr	r3, [fp, #-1252]
	ldr	r3, [r3]
	str	r3, [fp, #-1248]
	ldr	r3, [fp, #-1248]
	str	r3, [fp, #-1244]
	ldr	r2, [fp, #-1244]
	ldr	r3, [fp, #-1260]
	add	r3, r2, r3
	str	r3, [fp, #-1240]
	ldr	r3, [fp, #-1240]
	ldr	r3, [r3]
	str	r3, [fp, #-1236]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1232]
	ldr	r2, .L160
	ldr	r3, [fp, #-1232]
	add	r3, r3, r2
	str	r3, [fp, #-1228]
	ldr	r3, [fp, #-1228]
	ldr	r3, [r3]
	str	r3, [fp, #-1224]
	ldr	r3, [fp, #-1236]
	mov	r1, #0
	ldr	r0, [fp, #-1224]
	blx	r3
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1220]
	ldr	r2, .L160
	ldr	r3, [fp, #-1220]
	add	r3, r3, r2
	str	r3, [fp, #-1216]
	ldr	r3, [fp, #-1216]
	ldr	r3, [r3]
	str	r3, [fp, #-1212]
	ldr	r3, [fp, #-1212]
	str	r3, [fp, #-1208]
	ldr	r3, [fp, #-1208]
	add	r3, r3, #104
	str	r3, [fp, #-1204]
	ldr	r3, [fp, #-1204]
	ldr	r3, [r3]
	str	r3, [fp, #-1200]
	ldr	r3, [fp, #-1200]
	str	r3, [fp, #-1196]
	ldr	r3, .L160+4
	str	r3, [fp, #-1192]
	mov	r3, #0
	str	r3, [fp, #-1188]
	ldr	r3, [fp, #-1188]
	add	r3, r3, #4
	str	r3, [fp, #-1184]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1180]
	ldr	r2, .L160
	ldr	r3, [fp, #-1180]
	add	r3, r3, r2
	str	r3, [fp, #-1176]
	ldr	r3, [fp, #-1176]
	ldr	r3, [r3]
	str	r3, [fp, #-1172]
	ldr	r3, [fp, #-1172]
	str	r3, [fp, #-1168]
	ldr	r2, [fp, #-1168]
	ldr	r3, [fp, #-1184]
	add	r3, r2, r3
	str	r3, [fp, #-1164]
	ldr	r3, [fp, #-1164]
	str	r3, [fp, #-1160]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1156]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1152]
	ldr	r2, .L160
	ldr	r3, [fp, #-1152]
	add	r3, r3, r2
	str	r3, [fp, #-1148]
	ldr	r3, [fp, #-1148]
	ldr	r3, [r3]
	str	r3, [fp, #-1144]
	ldr	r3, [fp, #-1144]
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1140]
	str	r3, [sp]
	ldr	r3, [fp, #-1156]
	mov	r2, #160
	ldr	r1, [fp, #-1192]
	ldr	r0, [fp, #-1196]
	bl	request_irq
	str	r0, [fp, #-1136]
	ldr	r3, [fp, #-1136]
	cmp	r3, #0
	beq	.L124
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-136]
	ldr	r2, .L160
	ldr	r3, [fp, #-136]
	add	r3, r3, r2
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	add	r3, r3, #104
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	str	r3, [fp, #-116]
	mov	r3, #0
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	add	r3, r3, #4
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-104]
	ldr	r2, .L160
	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]
	str	r3, [fp, #-92]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-84]
	ldr	r1, [fp, #-116]
	ldr	r0, .L160+8
	bl	printk
	b	.L125
.L124:
	mov	r3, #0
	str	r3, [fp, #-1312]
.L126:
	ldr	r3, [fp, #-1312]
	cmp	r3, #15
	bgt	.L151
	ldr	r3, [fp, #-1312]
	lsl	r3, r3, #3
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #7
	str	r3, [fp, #-260]
	ldr	r2, [fp, #-260]
	ldr	r3, [fp, #-264]
	add	r3, r2, r3
	str	r3, [fp, #-256]
	ldr	r2, .L160+40
	ldr	r3, [fp, #-256]
	add	r3, r3, r2
	str	r3, [fp, #-252]
	mov	r3, #16
	str	r3, [fp, #-248]
	ldr	r4, [fp, #-252]
	ldr	r0, [fp, #-248]
	bl	alloc_disk
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-1312]
	lsl	r3, r3, #3
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #7
	str	r3, [fp, #-240]
	ldr	r2, [fp, #-240]
	ldr	r3, [fp, #-244]
	add	r3, r2, r3
	str	r3, [fp, #-236]
	ldr	r2, .L160+40
	ldr	r3, [fp, #-236]
	add	r3, r3, r2
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	cmp	r3, #0
	beq	.L152
	ldr	r3, [fp, #-1312]
	add	r3, r3, #1
	str	r3, [fp, #-1312]
	b	.L126
.L151:
	nop
.L128:
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1132]
	ldr	r2, .L160
	ldr	r3, [fp, #-1132]
	add	r3, r3, r2
	str	r3, [fp, #-1128]
	ldr	r3, [fp, #-1128]
	ldr	r3, [r3]
	str	r3, [fp, #-1124]
	ldr	r3, [fp, #-1124]
	str	r3, [fp, #-1120]
	ldr	r3, [fp, #-1120]
	add	r3, r3, #48
	str	r3, [fp, #-1116]
	ldr	r3, [fp, #-1116]
	ldr	r3, [r3]
	str	r3, [fp, #-1112]
	mov	r3, #41984
	str	r3, [fp, #-1108]
	ldr	r3, [fp, #-1108]
	str	r3, [fp, #-1104]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1100]
	ldr	r2, .L160
	ldr	r3, [fp, #-1100]
	add	r3, r3, r2
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1096]
	ldr	r3, [r3]
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #-1092]
	str	r3, [fp, #-1088]
	ldr	r3, [fp, #-1088]
	add	r3, r3, #568
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	str	r3, [fp, #-1080]
	ldr	r2, [fp, #-1080]
	ldr	r1, [fp, #-1104]
	ldr	r0, [fp, #-1112]
	bl	pci_alloc_consistent
	str	r0, [fp, #-1076]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1072]
	ldr	r2, .L160
	ldr	r3, [fp, #-1072]
	add	r3, r3, r2
	str	r3, [fp, #-1068]
	ldr	r3, [fp, #-1068]
	ldr	r3, [r3]
	str	r3, [fp, #-1064]
	ldr	r3, [fp, #-1064]
	str	r3, [fp, #-1060]
	ldr	r3, [fp, #-1060]
	add	r3, r3, #560
	str	r3, [fp, #-1056]
	ldr	r3, [fp, #-1056]
	ldr	r2, [fp, #-1076]
	str	r2, [r3]
	mov	r3, #32
	str	r3, [fp, #-1052]
	ldr	r3, [fp, #-1052]
	str	r3, [fp, #-1048]
	mov	r1, #208
	ldr	r0, [fp, #-1048]
	bl	kmalloc
	str	r0, [fp, #-1044]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1040]
	ldr	r2, .L160
	ldr	r3, [fp, #-1040]
	add	r3, r3, r2
	str	r3, [fp, #-1036]
	ldr	r3, [fp, #-1036]
	ldr	r3, [r3]
	str	r3, [fp, #-1032]
	ldr	r3, [fp, #-1032]
	str	r3, [fp, #-1028]
	ldr	r3, [fp, #-1028]
	add	r3, r3, #576
	str	r3, [fp, #-1024]
	ldr	r3, [fp, #-1024]
	ldr	r2, [fp, #-1044]
	str	r2, [r3]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-1020]
	ldr	r2, .L160
	ldr	r3, [fp, #-1020]
	add	r3, r3, r2
	str	r3, [fp, #-1016]
	ldr	r3, [fp, #-1016]
	ldr	r3, [r3]
	str	r3, [fp, #-1012]
	ldr	r3, [fp, #-1012]
	str	r3, [fp, #-1008]
	ldr	r3, [fp, #-1008]
	add	r3, r3, #576
	str	r3, [fp, #-1004]
	ldr	r3, [fp, #-1004]
	ldr	r3, [r3]
	str	r3, [fp, #-1000]
	ldr	r3, [fp, #-1000]
	cmp	r3, #0
	beq	.L153
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-996]
	ldr	r2, .L160
	ldr	r3, [fp, #-996]
	add	r3, r3, r2
	str	r3, [fp, #-992]
	ldr	r3, [fp, #-992]
	ldr	r3, [r3]
	str	r3, [fp, #-988]
	ldr	r3, [fp, #-988]
	str	r3, [fp, #-984]
	ldr	r3, [fp, #-984]
	add	r3, r3, #560
	str	r3, [fp, #-980]
	ldr	r3, [fp, #-980]
	ldr	r3, [r3]
	str	r3, [fp, #-976]
	ldr	r3, [fp, #-976]
	cmp	r3, #0
	beq	.L154
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-972]
	ldr	r2, .L160
	ldr	r3, [fp, #-972]
	add	r3, r3, r2
	str	r3, [fp, #-968]
	ldr	r3, [fp, #-968]
	ldr	r3, [r3]
	str	r3, [fp, #-964]
	ldr	r3, [fp, #-964]
	str	r3, [fp, #-960]
	ldr	r3, [fp, #-960]
	add	r3, r3, #560
	str	r3, [fp, #-956]
	ldr	r3, [fp, #-956]
	ldr	r3, [r3]
	str	r3, [fp, #-952]
	ldr	r3, [fp, #-952]
	str	r3, [fp, #-948]
	mov	r3, #41984
	str	r3, [fp, #-944]
	ldr	r3, [fp, #-944]
	str	r3, [fp, #-940]
	ldr	r2, [fp, #-940]
	mov	r1, #0
	ldr	r0, [fp, #-948]
	bl	memset
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-936]
	ldr	r2, .L160
	ldr	r3, [fp, #-936]
	add	r3, r3, r2
	str	r3, [fp, #-932]
	ldr	r3, [fp, #-932]
	ldr	r3, [r3]
	str	r3, [fp, #-928]
	ldr	r3, [fp, #-928]
	str	r3, [fp, #-924]
	ldr	r3, [fp, #-924]
	add	r3, r3, #576
	str	r3, [fp, #-920]
	ldr	r3, [fp, #-920]
	ldr	r3, [r3]
	str	r3, [fp, #-916]
	ldr	r3, [fp, #-916]
	str	r3, [fp, #-912]
	mov	r3, #32
	str	r3, [fp, #-908]
	ldr	r3, [fp, #-908]
	str	r3, [fp, #-904]
	ldr	r2, [fp, #-904]
	mov	r1, #0
	ldr	r0, [fp, #-912]
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-900]
	ldr	r3, [fp, #-900]
	add	r3, r3, #4
	str	r3, [fp, #-896]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-892]
	ldr	r2, .L160
	ldr	r3, [fp, #-892]
	add	r3, r3, r2
	str	r3, [fp, #-888]
	ldr	r3, [fp, #-888]
	ldr	r3, [r3]
	str	r3, [fp, #-884]
	ldr	r3, [fp, #-884]
	str	r3, [fp, #-880]
	ldr	r2, [fp, #-880]
	ldr	r3, [fp, #-896]
	add	r3, r2, r3
	str	r3, [fp, #-876]
	ldr	r3, [fp, #-876]
	str	r3, [fp, #-872]
	ldr	r1, [fp, #-872]
	ldr	r0, .L160+12
	bl	printk
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-868]
	ldr	r2, .L160
	ldr	r3, [fp, #-868]
	add	r3, r3, r2
	str	r3, [fp, #-864]
	ldr	r3, [fp, #-864]
	ldr	r3, [r3]
	str	r3, [fp, #-860]
	ldr	r3, [fp, #-860]
	str	r3, [fp, #-856]
	ldr	r3, [fp, #-856]
	add	r3, r3, #592
	str	r3, [fp, #-852]
	ldr	r3, [fp, #-852]
	str	r3, [fp, #-848]
	ldr	r0, [fp, #-848]
	bl	spin_lock_init
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-844]
	ldr	r2, .L160
	ldr	r3, [fp, #-844]
	add	r3, r3, r2
	str	r3, [fp, #-840]
	ldr	r3, [fp, #-840]
	ldr	r3, [r3]
	str	r3, [fp, #-836]
	ldr	r3, [fp, #-836]
	str	r3, [fp, #-832]
	ldr	r3, [fp, #-832]
	add	r3, r3, #592
	str	r3, [fp, #-828]
	ldr	r3, [fp, #-828]
	str	r3, [fp, #-824]
	ldr	r1, [fp, #-824]
	ldr	r0, .L160+16
	bl	blk_init_queue
	str	r0, [fp, #-820]
	ldr	r3, [fp, #-820]
	cmp	r3, #0
	beq	.L155
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-816]
	ldr	r2, .L160
	ldr	r3, [fp, #-816]
	add	r3, r3, r2
	str	r3, [fp, #-812]
	ldr	r3, [fp, #-812]
	ldr	r3, [r3]
	str	r3, [fp, #-808]
	ldr	r3, [fp, #-808]
	str	r3, [fp, #-804]
	ldr	r3, [fp, #-804]
	add	r3, r3, #584
	str	r3, [fp, #-800]
	ldr	r3, [fp, #-800]
	ldr	r2, [fp, #-820]
	str	r2, [r3]
	ldr	r3, [fp, #-820]
	str	r3, [fp, #-796]
	ldr	r3, [fp, #-796]
	add	r3, r3, #48
	str	r3, [fp, #-792]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-788]
	ldr	r2, .L160
	ldr	r3, [fp, #-788]
	add	r3, r3, r2
	str	r3, [fp, #-784]
	ldr	r3, [fp, #-784]
	ldr	r3, [r3]
	str	r3, [fp, #-780]
	ldr	r3, [fp, #-792]
	ldr	r2, [fp, #-780]
	str	r2, [r3]
	ldr	r0, [fp, #-1320]
	bl	getgeometry
	ldr	r0, [fp, #-1320]
	bl	start_fwbk
	ldr	r0, [fp, #-1320]
	bl	ida_procinit
	ldr	r3, [fp, #-1324]
	cmp	r3, #0
	beq	.L135
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-776]
	ldr	r2, .L160
	ldr	r3, [fp, #-776]
	add	r3, r3, r2
	str	r3, [fp, #-772]
	ldr	r3, [fp, #-772]
	ldr	r3, [r3]
	str	r3, [fp, #-768]
	ldr	r3, [fp, #-768]
	str	r3, [fp, #-764]
	ldr	r3, [fp, #-764]
	add	r3, r3, #48
	str	r3, [fp, #-760]
	ldr	r3, [fp, #-760]
	ldr	r3, [r3]
	str	r3, [fp, #-756]
	ldr	r3, [fp, #-756]
	str	r3, [fp, #-752]
	ldr	r3, [fp, #-752]
	add	r3, r3, #24
	str	r3, [fp, #-748]
	ldr	r3, [fp, #-748]
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-20]
	str	r3, [fp, #-16]
	sub	r3, fp, #20
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-820]
	bl	blk_queue_bounce_limit
.L135:
	mov	r1, #32
	ldr	r0, [fp, #-820]
	bl	blk_queue_max_hw_segments
	mov	r1, #32
	ldr	r0, [fp, #-820]
	bl	blk_queue_max_phys_segments
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-744]
	ldr	r2, .L160
	ldr	r3, [fp, #-744]
	add	r3, r3, r2
	str	r3, [fp, #-740]
	ldr	r3, [fp, #-740]
	ldr	r3, [r3]
	str	r3, [fp, #-736]
	ldr	r3, [fp, #-736]
	str	r3, [fp, #-732]
	ldr	r3, [fp, #-732]
	add	r3, r3, #624
	str	r3, [fp, #-728]
	ldr	r3, [fp, #-728]
	str	r3, [fp, #-724]
	ldr	r0, [fp, #-724]
	bl	init_timer
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-720]
	ldr	r2, .L160
	ldr	r3, [fp, #-720]
	add	r3, r3, r2
	str	r3, [fp, #-716]
	ldr	r3, [fp, #-716]
	ldr	r3, [r3]
	str	r3, [fp, #-712]
	ldr	r3, [fp, #-712]
	str	r3, [fp, #-708]
	ldr	r3, [fp, #-708]
	add	r3, r3, #624
	str	r3, [fp, #-704]
	ldr	r3, .L160+20
	ldr	r2, [r3]
	ldr	r3, [fp, #-704]
	add	r2, r2, #500
	str	r2, [r3]
	mov	r3, #640
	str	r3, [fp, #-700]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-696]
	ldr	r2, .L160
	ldr	r3, [fp, #-696]
	add	r3, r3, r2
	str	r3, [fp, #-692]
	ldr	r3, [fp, #-692]
	ldr	r3, [r3]
	str	r3, [fp, #-688]
	ldr	r3, [fp, #-688]
	str	r3, [fp, #-684]
	ldr	r2, [fp, #-684]
	ldr	r3, [fp, #-700]
	add	r3, r2, r3
	str	r3, [fp, #-680]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-676]
	ldr	r2, .L160
	ldr	r3, [fp, #-676]
	add	r3, r3, r2
	str	r3, [fp, #-672]
	ldr	r3, [fp, #-672]
	ldr	r3, [r3]
	str	r3, [fp, #-668]
	ldr	r3, [fp, #-680]
	ldr	r2, [fp, #-668]
	str	r2, [r3]
	mov	r3, #632
	str	r3, [fp, #-664]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-660]
	ldr	r2, .L160
	ldr	r3, [fp, #-660]
	add	r3, r3, r2
	str	r3, [fp, #-656]
	ldr	r3, [fp, #-656]
	ldr	r3, [r3]
	str	r3, [fp, #-652]
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-648]
	ldr	r2, [fp, #-648]
	ldr	r3, [fp, #-664]
	add	r3, r2, r3
	str	r3, [fp, #-644]
	ldr	r3, [fp, #-644]
	ldr	r2, .L160+24
	str	r2, [r3]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-640]
	ldr	r2, .L160
	ldr	r3, [fp, #-640]
	add	r3, r3, r2
	str	r3, [fp, #-636]
	ldr	r3, [fp, #-636]
	ldr	r3, [r3]
	str	r3, [fp, #-632]
	ldr	r3, [fp, #-632]
	str	r3, [fp, #-628]
	ldr	r3, [fp, #-628]
	add	r3, r3, #624
	str	r3, [fp, #-624]
	ldr	r3, [fp, #-624]
	str	r3, [fp, #-620]
	ldr	r0, [fp, #-620]
	bl	add_timer
	mov	r3, #512
	str	r3, [fp, #-616]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-612]
	ldr	r2, .L160
	ldr	r3, [fp, #-612]
	add	r3, r3, r2
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-608]
	ldr	r3, [r3]
	str	r3, [fp, #-604]
	ldr	r3, [fp, #-604]
	str	r3, [fp, #-600]
	ldr	r2, [fp, #-600]
	ldr	r3, [fp, #-616]
	add	r3, r2, r3
	str	r3, [fp, #-596]
	ldr	r3, [fp, #-596]
	ldr	r3, [r3]
	str	r3, [fp, #-592]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-588]
	ldr	r2, .L160
	ldr	r3, [fp, #-588]
	add	r3, r3, r2
	str	r3, [fp, #-584]
	ldr	r3, [fp, #-584]
	ldr	r3, [r3]
	str	r3, [fp, #-580]
	ldr	r3, [fp, #-592]
	mov	r1, #1
	ldr	r0, [fp, #-580]
	blx	r3
	mov	r3, #0
	str	r3, [fp, #-1312]
.L136:
	ldr	r3, [fp, #-1312]
	cmp	r3, #15
	bgt	.L156
	ldr	r3, [fp, #-1312]
	lsl	r3, r3, #3
	str	r3, [fp, #-576]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #7
	str	r3, [fp, #-572]
	ldr	r2, [fp, #-572]
	ldr	r3, [fp, #-576]
	add	r3, r2, r3
	str	r3, [fp, #-568]
	ldr	r2, .L160+40
	ldr	r3, [fp, #-568]
	add	r3, r3, r2
	str	r3, [fp, #-564]
	ldr	r3, [fp, #-564]
	ldr	r3, [r3]
	str	r3, [fp, #-560]
	ldr	r2, [fp, #-1312]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-556]
	ldr	r3, [fp, #-556]
	add	r3, r3, #112
	str	r3, [fp, #-552]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-548]
	ldr	r2, .L160
	ldr	r3, [fp, #-548]
	add	r3, r3, r2
	str	r3, [fp, #-544]
	ldr	r3, [fp, #-544]
	ldr	r3, [r3]
	str	r3, [fp, #-540]
	ldr	r3, [fp, #-540]
	str	r3, [fp, #-536]
	ldr	r2, [fp, #-536]
	ldr	r3, [fp, #-552]
	add	r3, r2, r3
	str	r3, [fp, #-532]
	ldr	r3, [fp, #-532]
	str	r3, [fp, #-528]
	mov	r3, #0
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-524]
	add	r3, r3, #12
	str	r3, [fp, #-520]
	ldr	r3, [fp, #-560]
	str	r3, [fp, #-516]
	ldr	r2, [fp, #-516]
	ldr	r3, [fp, #-520]
	add	r3, r2, r3
	str	r3, [fp, #-512]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-1312]
	ldr	r2, [fp, #-1320]
	ldr	r1, .L160+28
	ldr	r0, [fp, #-508]
	bl	sprintf
	ldr	r3, [fp, #-1320]
	add	r2, r3, #72
	ldr	r3, [fp, #-560]
	str	r2, [r3]
	ldr	r3, [fp, #-560]
	str	r3, [fp, #-504]
	ldr	r3, [fp, #-504]
	add	r3, r3, #4
	str	r3, [fp, #-500]
	ldr	r3, [fp, #-500]
	ldr	r2, [fp, #-1312]
	lsl	r2, r2, #4
	str	r2, [r3]
	ldr	r3, [fp, #-560]
	str	r3, [fp, #-496]
	ldr	r3, [fp, #-496]
	add	r3, r3, #48
	str	r3, [fp, #-492]
	ldr	r3, [fp, #-492]
	ldr	r2, .L160+32
	str	r2, [r3]
	ldr	r3, [fp, #-1312]
	cmp	r3, #0
	beq	.L139
	ldr	r3, [fp, #-528]
	str	r3, [fp, #-488]
	ldr	r3, [fp, #-488]
	add	r3, r3, #4
	str	r3, [fp, #-484]
	ldr	r3, [fp, #-484]
	ldr	r3, [r3]
	str	r3, [fp, #-480]
	ldr	r3, [fp, #-480]
	cmp	r3, #0
	beq	.L157
.L139:
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-476]
	ldr	r2, .L160
	ldr	r3, [fp, #-476]
	add	r3, r3, r2
	str	r3, [fp, #-472]
	ldr	r3, [fp, #-472]
	ldr	r3, [r3]
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-464]
	add	r3, r3, #584
	str	r3, [fp, #-460]
	ldr	r3, [fp, #-460]
	ldr	r3, [r3]
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-528]
	ldr	r3, [r3]
	str	r3, [fp, #-452]
	sub	r3, fp, #12
	sub	r3, r3, #1296
	sub	r3, r3, #6
	ldr	r2, [fp, #-452]
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #12
	sub	r3, r3, #1296
	sub	r3, r3, #6
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-456]
	bl	blk_queue_hardsect_size
	ldr	r3, [fp, #-528]
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-448]
	add	r3, r3, #4
	str	r3, [fp, #-444]
	ldr	r3, [fp, #-444]
	ldr	r3, [r3]
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-440]
	str	r3, [fp, #-436]
	ldr	r1, [fp, #-436]
	ldr	r0, [fp, #-560]
	bl	set_capacity
	ldr	r3, [fp, #-560]
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	add	r3, r3, #56
	str	r3, [fp, #-428]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-424]
	ldr	r2, .L160
	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, #584
	str	r3, [fp, #-408]
	ldr	r2, [fp, #-408]
	ldr	r3, [fp, #-428]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-560]
	str	r3, [fp, #-404]
	ldr	r3, [fp, #-404]
	add	r3, r3, #64
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-400]
	ldr	r2, [fp, #-528]
	str	r2, [r3]
	ldr	r0, [fp, #-560]
	bl	add_disk
	b	.L140
.L157:
	nop
.L140:
	ldr	r3, [fp, #-1312]
	add	r3, r3, #1
	str	r3, [fp, #-1312]
	b	.L136
.L156:
	nop
.L138:
	ldr	r3, [fp, #-1320]
	b	.L141
.L153:
	nop
	b	.L132
.L154:
	nop
	b	.L132
.L155:
	nop
.L132:
	ldr	r2, .L160+36
	ldr	r3, [fp, #-1320]
	str	r3, [r2]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-396]
	ldr	r2, .L160
	ldr	r3, [fp, #-396]
	add	r3, r3, r2
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	ldr	r3, [r3]
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-388]
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-384]
	add	r3, r3, #576
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-380]
	ldr	r3, [r3]
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	str	r3, [fp, #-372]
	ldr	r0, [fp, #-372]
	bl	kfree
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-368]
	ldr	r2, .L160
	ldr	r3, [fp, #-368]
	add	r3, r3, r2
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	ldr	r3, [r3]
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-360]
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	add	r3, r3, #560
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L158
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-348]
	ldr	r2, .L160
	ldr	r3, [fp, #-348]
	add	r3, r3, r2
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-344]
	ldr	r3, [r3]
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	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]
	mov	r3, #41984
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-316]
	ldr	r2, .L160
	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, #560
	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, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-288]
	ldr	r2, .L160
	ldr	r3, [fp, #-288]
	add	r3, r3, r2
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	ldr	r3, [r3]
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-276]
	add	r3, r3, #568
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3]
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	ldr	r2, [fp, #-292]
	ldr	r1, [fp, #-320]
	ldr	r0, [fp, #-328]
	bl	pci_free_consistent
	b	.L145
.L130:
.L152:
	nop
	b	.L145
.L161:
	.align	2
.L160:
	.word	hba
	.word	do_ida_intr
	.word	.LC25
	.word	.LC26
	.word	do_ida_request
	.word	jiffies
	.word	ida_timer
	.word	.LC27
	.word	ida_fops
	.word	nr_ctlr
	.word	ida_gendisk
	.word	hba
	.word	.LC28
.L158:
	nop
.L142:
.L145:
	ldr	r3, [fp, #-1312]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-1312]
	sub	r3, r3, #1
	str	r3, [fp, #-1312]
	ldr	r3, [fp, #-224]
	cmp	r3, #0
	beq	.L159
	ldr	r3, [fp, #-1312]
	lsl	r3, r3, #3
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #7
	str	r3, [fp, #-216]
	ldr	r2, [fp, #-216]
	ldr	r3, [fp, #-220]
	add	r3, r2, r3
	str	r3, [fp, #-212]
	ldr	r2, .L160+40
	ldr	r3, [fp, #-212]
	add	r3, r3, r2
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	str	r3, [fp, #-204]
	ldr	r0, [fp, #-204]
	bl	put_disk
	ldr	r3, [fp, #-1312]
	lsl	r3, r3, #3
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #7
	str	r3, [fp, #-196]
	ldr	r2, [fp, #-196]
	ldr	r3, [fp, #-200]
	add	r3, r2, r3
	str	r3, [fp, #-192]
	ldr	r2, .L160+40
	ldr	r3, [fp, #-192]
	add	r3, r3, r2
	str	r3, [fp, #-188]
	mov	r3, #0
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-188]
	ldr	r2, [fp, #-184]
	str	r2, [r3]
	b	.L145
.L159:
	nop
.L144:
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-180]
	ldr	r2, .L160+44
	ldr	r3, [fp, #-180]
	add	r3, r3, r2
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	ldr	r3, [r3]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	add	r3, r3, #104
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-152]
	ldr	r2, .L160+44
	ldr	r3, [fp, #-152]
	add	r3, r3, r2
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-140]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-156]
	bl	free_irq
.L125:
	ldr	r3, [fp, #-1320]
	add	r3, r3, #72
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-64]
	ldr	r2, .L160+44
	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	r2, [fp, #-52]
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r1, [fp, #-40]
	ldr	r0, [fp, #-76]
	bl	unregister_blkdev
	b	.L123
.L150:
	nop
.L123:
	ldr	r3, [fp, #-1324]
	cmp	r3, #0
	beq	.L146
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r1, [fp, #-36]
	ldr	r0, [fp, #-1324]
	bl	pci_set_drvdata
.L146:
	ldr	r3, [fp, #-1320]
	lsl	r3, r3, #3
	str	r3, [fp, #-32]
	ldr	r2, .L160+44
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	release_io_mem
	ldr	r0, [fp, #-1320]
	bl	free_hba
	ldr	r0, .L160+48
	bl	printk
	mvn	r3, #0
.L141:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
	.size	cpqarray_register_ctlr, .-cpqarray_register_ctlr
	.section	.rodata
	.align	2
.LC29:
	.ascii	"<7>cpqarray: Device 0x%x has been found at bus %d d"
	.ascii	"ev %d func %d\012\000"
	.align	2
.LC30:
	.ascii	"ida%d\000"
	.text
	.align	2
	.global	cpqarray_init_one
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_init_one, %function
cpqarray_init_one:
	@ args = 0, pretend = 0, frame = 192
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #200
	str	r0, [fp, #-192]
	str	r1, [fp, #-196]
	ldr	r3, [fp, #-192]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	add	r3, r3, #14
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	ldrh	r3, [r3]	@ movhi
	strh	r3, [fp, #-182]	@ movhi
	ldrh	r3, [fp, #-182]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldrb	r3, [r3]
	strb	r3, [fp, #-183]
	ldrb	r3, [fp, #-183]	@ zero_extendqisi2
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-192]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #8
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	ldr	r3, [r3]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	lsr	r3, r3, #3
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	and	r3, r3, #31
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-192]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	add	r3, r3, #8
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	and	r3, r3, #7
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [sp]
	ldr	r3, [fp, #-144]
	ldr	r2, [fp, #-164]
	ldr	r1, [fp, #-172]
	ldr	r0, .L166
	bl	printk
	bl	alloc_cpqarray_hba
	str	r0, [fp, #-124]
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bge	.L163
	mvn	r3, #0
	b	.L164
.L163:
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	str	r3, [fp, #-120]
	ldr	r2, .L166+4
	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]
	mov	r3, #664
	str	r3, [fp, #-104]
	ldr	r2, [fp, #-104]
	mov	r1, #0
	ldr	r0, [fp, #-108]
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	add	r3, r3, #4
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	str	r3, [fp, #-92]
	ldr	r2, .L166+4
	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	r2, [fp, #-80]
	ldr	r3, [fp, #-96]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-124]
	ldr	r1, .L166+8
	ldr	r0, [fp, #-72]
	bl	sprintf
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	str	r3, [fp, #-68]
	ldr	r2, .L166+4
	ldr	r3, [fp, #-68]
	add	r3, r3, r2
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r2, [fp, #-124]
	str	r2, [r3]
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	str	r3, [fp, #-56]
	ldr	r2, .L166+4
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-44]
	ldr	r1, [fp, #-44]
	ldr	r0, [fp, #-192]
	bl	pci_set_drvdata
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	str	r3, [fp, #-40]
	ldr	r2, .L166+4
	ldr	r3, [fp, #-40]
	add	r3, r3, r2
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r1, [fp, #-192]
	ldr	r0, [fp, #-32]
	bl	cpqarray_pci_init
	str	r0, [fp, #-28]
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	beq	.L165
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-20]
	ldr	r0, [fp, #-192]
	bl	pci_set_drvdata
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r2, .L166+4
	ldr	r3, [fp, #-16]
	add	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	release_io_mem
	ldr	r0, [fp, #-124]
	bl	free_hba
	mvn	r3, #0
	b	.L164
.L165:
	ldr	r1, [fp, #-192]
	ldr	r0, [fp, #-124]
	bl	cpqarray_register_ctlr
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
.L164:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L167:
	.align	2
.L166:
	.word	.LC29
	.word	hba
	.word	.LC30
	.size	cpqarray_init_one, .-cpqarray_init_one
	.global	cpqarray_pci_driver
	.data
	.align	2
	.type	cpqarray_pci_driver, %object
	.size	cpqarray_pci_driver, 32
cpqarray_pci_driver:
	.word	.LC16
	.word	cpqarray_pci_device_id
	.word	cpqarray_init_one
	.word	cpqarray_remove_one_pci
	.word	0
	.word	0
	.word	0
	.word	0
	.section	.rodata
	.align	2
.LC31:
	.ascii	"Compaq SMART2 Driver (v 2.6.0)\012\000"
	.text
	.align	2
	.global	cpqarray_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_init, %function
cpqarray_init:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r0, .L177
	bl	printk
	ldr	r0, .L177+4
	bl	pci_register_driver
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmp	r3, #0
	beq	.L169
	ldr	r3, [fp, #-32]
	b	.L170
.L169:
	bl	cpqarray_eisa_detect
	mov	r3, #0
	str	r3, [fp, #-36]
.L171:
	ldr	r3, [fp, #-36]
	cmp	r3, #7
	bgt	.L176
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L177+8
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	beq	.L174
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L174:
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-36]
	b	.L171
.L176:
	nop
.L173:
	ldr	r3, [fp, #-40]
.L170:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L178:
	.align	2
.L177:
	.word	.LC31
	.word	cpqarray_pci_driver
	.word	hba
	.size	cpqarray_init, .-cpqarray_init
	.section	.rodata
	.align	2
.LC32:
	.ascii	"<3>cpqarray: out of memory.\012\000"
	.align	2
.LC33:
	.ascii	"<4>cpqarray: This driver supports a maximum of 8 co"
	.ascii	"ntrollers.\012\000"
	.text
	.align	2
	.global	alloc_cpqarray_hba
	.syntax unified
	.arm
	.fpu softvfp
	.type	alloc_cpqarray_hba, %function
alloc_cpqarray_hba:
	@ args = 0, pretend = 0, frame = 72
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #72
	mov	r3, #0
	str	r3, [fp, #-72]
.L180:
	ldr	r3, [fp, #-72]
	cmp	r3, #7
	bgt	.L187
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #3
	str	r3, [fp, #-60]
	ldr	r2, .L188
	ldr	r3, [fp, #-60]
	add	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-64]
	cmp	r2, r3
	bne	.L183
	mov	r3, #664
	str	r3, [fp, #-44]
	mov	r1, #208
	ldr	r0, [fp, #-44]
	bl	kmalloc
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #3
	str	r3, [fp, #-36]
	ldr	r2, .L188
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r2, [fp, #-40]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L188
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	bne	.L184
	ldr	r0, .L188+4
	bl	printk
	mvn	r3, #0
	b	.L185
.L184:
	ldr	r3, [fp, #-72]
	b	.L185
.L183:
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
	b	.L180
.L187:
	nop
.L182:
	ldr	r0, .L188+8
	bl	printk
	mvn	r3, #0
.L185:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L189:
	.align	2
.L188:
	.word	hba
	.word	.LC32
	.word	.LC33
	.size	alloc_cpqarray_hba, .-alloc_cpqarray_hba
	.align	2
	.global	free_hba
	.syntax unified
	.arm
	.fpu softvfp
	.type	free_hba, %function
free_hba:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #3
	str	r3, [fp, #-32]
	ldr	r2, .L192
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	kfree
	ldr	r3, [fp, #-40]
	lsl	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r2, .L192
	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
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L193:
	.align	2
.L192:
	.word	hba
	.size	free_hba, .-free_hba
	.section	.rodata
	.align	2
.LC34:
	.ascii	"<3>cpqarray: Unable to Enable PCI device\012\000"
	.align	2
.LC35:
	.ascii	"<3>cpqarray: Unable to set DMA mask\012\000"
	.align	2
.LC36:
	.ascii	"<4>cpqarray: controller appears to be disabled\012\000"
	.align	2
.LC37:
	.ascii	"<4>cpqarray I/O memory range already in use addr %l"
	.ascii	"x length = %ld\012\000"
	.align	2
.LC38:
	.ascii	"<4>cpqarray: Sorry, I don't know how to access the "
	.ascii	"SMART Array controller %08lx\012\000"
	.align	2
.LC39:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cpqarray_pci_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_pci_init, %function
cpqarray_pci_init:
	@ args = 0, pretend = 0, frame = 544
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #548
	str	r0, [fp, #-552]
	str	r1, [fp, #-556]
	ldr	r3, .L228
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-528]
	ldr	r3, [fp, #-528]
	add	r3, r3, #48
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-524]
	ldr	r2, [fp, #-556]
	str	r2, [r3]
	ldr	r0, [fp, #-556]
	bl	pci_enable_device
	str	r0, [fp, #-520]
	ldr	r3, [fp, #-520]
	cmp	r3, #0
	beq	.L195
	ldr	r0, .L228+4
	bl	printk
	mvn	r3, #0
	b	.L219
.L195:
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-516]
	ldr	r3, [fp, #-516]
	add	r3, r3, #12
	str	r3, [fp, #-512]
	ldr	r2, [fp, #-512]
	sub	r3, fp, #12
	sub	r3, r3, #528
	sub	r3, r3, #2
	ldrh	r2, [r2]	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-508]
	add	r3, r3, #14
	str	r3, [fp, #-504]
	ldr	r2, [fp, #-504]
	sub	r3, fp, #12
	sub	r3, r3, #528
	ldrh	r2, [r2]	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-500]
	ldr	r3, [fp, #-500]
	add	r3, r3, #48
	str	r3, [fp, #-496]
	ldr	r3, [fp, #-496]
	ldr	r3, [r3]
	str	r3, [fp, #-492]
	ldr	r3, [fp, #-492]
	strb	r3, [fp, #-545]
	mov	r3, #0
	str	r3, [fp, #-532]
.L197:
	ldr	r3, [fp, #-532]
	cmp	r3, #5
	bgt	.L222
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #3
	str	r3, [fp, #-80]
	sub	r3, fp, #40
	ldr	r2, [fp, #-80]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #5
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	add	r3, r3, #56
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-76]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-532]
	add	r3, r3, #1
	str	r3, [fp, #-532]
	b	.L197
.L222:
	nop
.L199:
	mvn	r2, #0
	mov	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-556]
	bl	pci_set_dma_mask
	str	r0, [fp, #-488]
	ldr	r3, [fp, #-488]
	cmp	r3, #0
	beq	.L200
	ldr	r0, .L228+8
	bl	printk
	mvn	r3, #0
	b	.L219
.L200:
	sub	r3, fp, #544
	mov	r2, r3
	mov	r1, #4
	ldr	r0, [fp, #-556]
	bl	pci_read_config_word
	sub	r3, fp, #544
	sub	r3, r3, #2
	mov	r2, r3
	mov	r1, #8
	ldr	r0, [fp, #-556]
	bl	pci_read_config_byte
	sub	r3, fp, #548
	mov	r2, r3
	mov	r1, #12
	ldr	r0, [fp, #-556]
	bl	pci_read_config_byte
	sub	r3, fp, #544
	sub	r3, r3, #3
	mov	r2, r3
	mov	r1, #13
	ldr	r0, [fp, #-556]
	bl	pci_read_config_byte
	sub	r3, fp, #536
	mov	r2, r3
	mov	r1, #44
	ldr	r0, [fp, #-556]
	bl	pci_read_config_dword
	sub	r3, fp, #544
	str	r3, [fp, #-484]
	sub	r3, fp, #12
	sub	r3, r3, #524
	sub	r3, r3, #2
	ldr	r2, [fp, #-484]
	ldrh	r2, [r2]	@ movhi
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #12
	sub	r3, r3, #524
	sub	r3, r3, #2
	ldrh	r3, [r3]
	str	r3, [fp, #-480]
	ldr	r3, [fp, #-480]
	and	r3, r3, #2
	str	r3, [fp, #-476]
	ldr	r3, [fp, #-476]
	cmp	r3, #0
	bne	.L223
	ldr	r0, .L228+12
	bl	printk
	mvn	r3, #0
	b	.L219
.L223:
	nop
.L201:
	nop
.L202:
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-472]
	ldr	r3, [fp, #-472]
	add	r3, r3, #104
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-468]
	ldrb	r2, [fp, #-545]	@ zero_extendqisi2
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-532]
.L203:
	ldr	r3, [fp, #-532]
	cmp	r3, #5
	bgt	.L224
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #5
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-464]
	add	r3, r3, #24
	str	r3, [fp, #-460]
	ldr	r3, [fp, #-460]
	add	r3, r3, #56
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-452]
	ldr	r2, [fp, #-452]
	ldr	r3, [fp, #-456]
	add	r3, r2, r3
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-448]
	ldr	r3, [r3]
	str	r3, [fp, #-444]
	ldr	r3, [fp, #-444]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L206
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-440]
	add	r3, r3, #88
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #3
	str	r3, [fp, #-432]
	sub	r3, fp, #40
	ldr	r2, [fp, #-432]
	add	r3, r2, r3
	str	r3, [fp, #-428]
	ldr	r2, [fp, #-428]
	ldr	r3, [fp, #-436]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-424]
	add	r3, r3, #96
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #5
	str	r3, [fp, #-416]
	ldr	r3, [fp, #-416]
	add	r3, r3, #8
	str	r3, [fp, #-412]
	ldr	r3, [fp, #-412]
	add	r3, r3, #56
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-404]
	ldr	r2, [fp, #-404]
	ldr	r3, [fp, #-408]
	add	r3, r2, r3
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-400]
	ldr	r3, [r3]
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #5
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	add	r3, r3, #16
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-388]
	add	r3, r3, #56
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-380]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-384]
	add	r3, r2, r3
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	ldr	r3, [r3]
	str	r3, [fp, #-372]
	ldr	r2, [fp, #-372]
	ldr	r3, [fp, #-396]
	sub	r3, r2, r3
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-420]
	ldr	r2, [fp, #-368]
	add	r2, r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	add	r3, r3, #88
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-360]
	ldr	r3, [r3]
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	add	r3, r3, #96
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-348]
	ldr	r3, [r3]
	str	r3, [fp, #-344]
	ldr	r2, .L228+16
	ldr	r1, [fp, #-344]
	ldr	r0, [fp, #-356]
	bl	request_region
	str	r0, [fp, #-340]
	ldr	r3, [fp, #-340]
	cmp	r3, #0
	bne	.L225
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	add	r3, r3, #88
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	ldr	r3, [r3]
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	add	r3, r3, #96
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3]
	str	r3, [fp, #-316]
	ldr	r2, [fp, #-316]
	ldr	r1, [fp, #-328]
	ldr	r0, .L228+20
	bl	printk
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-312]
	add	r3, r3, #88
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	add	r3, r3, #96
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-300]
	mov	r2, #0
	str	r2, [r3]
	b	.L225
.L206:
	ldr	r3, [fp, #-532]
	add	r3, r3, #1
	str	r3, [fp, #-532]
	b	.L203
.L224:
	nop
	b	.L205
.L225:
	nop
.L205:
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	add	r3, r3, #80
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-532]
.L208:
	ldr	r3, [fp, #-532]
	cmp	r3, #5
	bgt	.L226
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #5
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	add	r3, r3, #24
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	add	r3, r3, #56
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-276]
	ldr	r2, [fp, #-276]
	ldr	r3, [fp, #-280]
	add	r3, r2, r3
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	ldr	r3, [r3]
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	and	r3, r3, #1
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	cmp	r3, #0
	bne	.L211
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-260]
	add	r3, r3, #80
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-532]
	lsl	r3, r3, #5
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	add	r3, r3, #8
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	add	r3, r3, #56
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-556]
	str	r3, [fp, #-240]
	ldr	r2, [fp, #-240]
	ldr	r3, [fp, #-244]
	add	r3, r2, r3
	str	r3, [fp, #-236]
	ldr	r2, [fp, #-236]
	ldr	r3, [fp, #-256]
	ldr	r2, [r2]
	str	r2, [r3]
	b	.L210
.L211:
	ldr	r3, [fp, #-532]
	add	r3, r3, #1
	str	r3, [fp, #-532]
	b	.L208
.L226:
	nop
.L210:
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	add	r3, r3, #80
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	cmp	r3, #0
	bne	.L212
	mvn	r3, #0
	b	.L219
.L212:
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	add	r3, r3, #72
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	add	r3, r3, #80
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	str	r3, [fp, #-204]
	mov	r3, #128
	str	r3, [fp, #-200]
	ldr	r4, [fp, #-216]
	ldr	r1, [fp, #-200]
	ldr	r0, [fp, #-204]
	bl	remap_pci_mem
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	add	r3, r3, #72
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3]
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	cmp	r3, #0
	bne	.L213
	mvn	r3, #0
	b	.L219
.L213:
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	add	r3, r3, #56
	str	r3, [fp, #-180]
	sub	r3, fp, #536
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-180]
	ldr	r2, [fp, #-176]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-532]
.L214:
	mov	r3, #15
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-532]
	str	r3, [fp, #-168]
	ldr	r2, [fp, #-168]
	ldr	r3, [fp, #-172]
	cmp	r2, r3
	bcs	.L227
	ldr	r2, [fp, #-532]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-164]
	ldr	r2, .L228+24
	ldr	r3, [fp, #-164]
	add	r3, r3, r2
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	sub	r3, fp, #536
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	str	r3, [fp, #-148]
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-156]
	cmp	r2, r3
	bne	.L217
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	add	r3, r3, #64
	str	r3, [fp, #-140]
	ldr	r2, [fp, #-532]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	str	r3, [fp, #-132]
	ldr	r2, .L228+24
	ldr	r3, [fp, #-132]
	add	r3, r3, r2
	str	r3, [fp, #-128]
	ldr	r2, [fp, #-128]
	ldr	r3, [fp, #-140]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-552]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	add	r3, r3, #504
	str	r3, [fp, #-120]
	ldr	r2, [fp, #-532]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	add	r3, r3, #16
	str	r3, [fp, #-112]
	ldr	r2, .L228+24
	ldr	r3, [fp, #-112]
	add	r3, r3, r2
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-104]
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-104]
	mov	ip, r2
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	b	.L216
.L217:
	ldr	r3, [fp, #-532]
	add	r3, r3, #1
	str	r3, [fp, #-532]
	b	.L214
.L227:
	nop
.L216:
	mov	r3, #15
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-532]
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	bne	.L218
	sub	r3, fp, #536
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-84]
	ldr	r1, [fp, #-84]
	ldr	r0, .L228+28
	bl	printk
	mvn	r3, #0
	b	.L219
.L218:
	mov	r3, #0
.L219:
	ldr	r2, .L228
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L220
	bl	__stack_chk_fail
.L220:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L229:
	.align	2
.L228:
	.word	.LC39
	.word	.LC34
	.word	.LC35
	.word	.LC36
	.word	.LC16
	.word	.LC37
	.word	products
	.word	.LC38
	.size	cpqarray_pci_init, .-cpqarray_pci_init
	.align	2
	.global	remap_pci_mem
	.syntax unified
	.arm
	.fpu softvfp
	.type	remap_pci_mem, %function
remap_pci_mem:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	mov	r3, #4096
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	sub	r3, r3, #1
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	mvn	r3, r3
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-28]
	and	r3, r3, r2
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-48]
	ldr	r3, [fp, #-24]
	sub	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r1, [fp, #-16]
	ldr	r0, [fp, #-24]
	bl	ioremap
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L231
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	b	.L232
.L231:
	mov	r3, #0
	str	r3, [fp, #-40]
.L232:
	ldr	r3, [fp, #-40]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	remap_pci_mem, .-remap_pci_mem
	.section	.rodata
	.align	2
.LC40:
	.ascii	"<4>cpqarray: I/O range already in use addr = %lx le"
	.ascii	"ngth = %ld\012\000"
	.align	2
.LC41:
	.ascii	"<4>cpqarray: Can't register EISA controller %d\012\000"
	.text
	.align	2
	.global	cpqarray_eisa_detect
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_eisa_detect, %function
cpqarray_eisa_detect:
	@ args = 0, pretend = 0, frame = 480
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #480
	mov	r3, #0
	str	r3, [fp, #-476]
	mov	r3, #0
	str	r3, [fp, #-464]
.L235:
	ldr	r3, [fp, #-476]
	cmp	r3, #7
	bgt	.L254
	ldr	r3, [fp, #-476]
	lsl	r3, r3, #2
	str	r3, [fp, #-460]
	ldr	r2, .L259
	ldr	r3, [fp, #-460]
	add	r3, r3, r2
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-456]
	ldr	r3, [r3]
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-452]
	cmp	r3, #0
	beq	.L255
	bl	alloc_cpqarray_hba
	str	r0, [fp, #-448]
	ldr	r3, [fp, #-448]
	cmn	r3, #1
	beq	.L256
	ldr	r3, [fp, #-476]
	lsl	r3, r3, #2
	str	r3, [fp, #-444]
	ldr	r2, .L259
	ldr	r3, [fp, #-444]
	add	r3, r3, r2
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-440]
	ldr	r3, [r3]
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-436]
	add	r3, r3, #3200
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	str	r3, [fp, #-428]
	ldr	r0, [fp, #-428]
	bl	inl
	str	r0, [fp, #-424]
	mov	r3, #0
	str	r3, [fp, #-472]
.L240:
	mov	r3, #15
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-472]
	str	r3, [fp, #-416]
	ldr	r2, [fp, #-416]
	ldr	r3, [fp, #-420]
	cmp	r2, r3
	bcs	.L257
	ldr	r2, [fp, #-472]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-412]
	ldr	r2, .L259+4
	ldr	r3, [fp, #-412]
	add	r3, r3, r2
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-408]
	ldr	r3, [r3]
	str	r3, [fp, #-404]
	ldr	r2, [fp, #-424]
	ldr	r3, [fp, #-404]
	cmp	r2, r3
	beq	.L258
	ldr	r3, [fp, #-472]
	add	r3, r3, #1
	str	r3, [fp, #-472]
	b	.L240
.L257:
	nop
	b	.L242
.L258:
	nop
.L242:
	mov	r3, #15
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-472]
	str	r3, [fp, #-396]
	ldr	r2, [fp, #-396]
	ldr	r3, [fp, #-400]
	cmp	r2, r3
	bne	.L244
	ldr	r3, [fp, #-424]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, .L259+8
	bl	printk
	b	.L235
.L244:
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-392]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-392]
	add	r3, r3, r2
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-388]
	ldr	r3, [r3]
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-384]
	str	r3, [fp, #-380]
	mov	r3, #664
	str	r3, [fp, #-376]
	ldr	r2, [fp, #-376]
	mov	r1, #0
	ldr	r0, [fp, #-380]
	bl	memset
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-372]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-372]
	add	r3, r3, r2
	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, #88
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-476]
	lsl	r3, r3, #2
	str	r3, [fp, #-352]
	ldr	r2, .L259
	ldr	r3, [fp, #-352]
	add	r3, r3, r2
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-348]
	ldr	r3, [r3]
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-356]
	ldr	r2, [fp, #-344]
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-340]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-340]
	add	r3, r3, r2
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	ldr	r3, [r3]
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-328]
	add	r3, r3, #96
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	ldr	r2, .L259+16
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-320]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-320]
	add	r3, r3, r2
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-316]
	ldr	r3, [r3]
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-312]
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	add	r3, r3, #88
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	ldr	r3, [r3]
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-296]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	ldr	r3, [r3]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	add	r3, r3, #96
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	ldr	r3, [r3]
	str	r3, [fp, #-276]
	ldr	r2, .L259+20
	ldr	r1, [fp, #-276]
	ldr	r0, [fp, #-300]
	bl	request_region
	str	r0, [fp, #-272]
	ldr	r3, [fp, #-272]
	cmp	r3, #0
	bne	.L245
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-56]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #88
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-32]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #96
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r1, [fp, #-36]
	ldr	r0, .L259+24
	bl	printk
	ldr	r0, [fp, #-448]
	bl	free_hba
	b	.L235
.L245:
	ldr	r3, [fp, #-476]
	lsl	r3, r3, #2
	str	r3, [fp, #-268]
	ldr	r2, .L259
	ldr	r3, [fp, #-268]
	add	r3, r3, r2
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	ldr	r3, [r3]
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-260]
	add	r3, r3, #3264
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	str	r3, [fp, #-252]
	ldr	r0, [fp, #-252]
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-477]
	ldrb	r3, [fp, #-477]	@ zero_extendqisi2
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	asr	r3, r3, #4
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-468]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L246
	mov	r3, #11
	str	r3, [fp, #-468]
	b	.L247
.L246:
	ldr	r3, [fp, #-468]
	and	r3, r3, #2
	cmp	r3, #0
	beq	.L248
	mov	r3, #10
	str	r3, [fp, #-468]
	b	.L247
.L248:
	ldr	r3, [fp, #-468]
	and	r3, r3, #4
	cmp	r3, #0
	beq	.L249
	mov	r3, #14
	str	r3, [fp, #-468]
	b	.L247
.L249:
	ldr	r3, [fp, #-468]
	and	r3, r3, #8
	cmp	r3, #0
	beq	.L247
	mov	r3, #15
	str	r3, [fp, #-468]
.L247:
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-244]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-244]
	add	r3, r3, r2
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	ldr	r3, [r3]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	add	r3, r3, #104
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	ldr	r2, [fp, #-468]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	add	r3, r3, #4
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-216]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-216]
	add	r3, r3, r2
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	ldr	r3, [r3]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	str	r3, [fp, #-204]
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-220]
	add	r3, r2, r3
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-196]
	ldr	r3, .L259+28
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L259+32
	ldr	r0, [fp, #-196]
	bl	sprintf
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-192]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-192]
	add	r3, r3, r2
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	ldr	r3, [r3]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	add	r3, r3, #64
	str	r3, [fp, #-176]
	ldr	r2, [fp, #-472]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	add	r3, r3, #8
	str	r3, [fp, #-168]
	ldr	r2, .L259+4
	ldr	r3, [fp, #-168]
	add	r3, r3, r2
	str	r3, [fp, #-164]
	ldr	r2, [fp, #-164]
	ldr	r3, [fp, #-176]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-160]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-160]
	add	r3, r3, r2
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	ldr	r3, [r3]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	add	r3, r3, #504
	str	r3, [fp, #-144]
	ldr	r2, [fp, #-472]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	add	r3, r3, #16
	str	r3, [fp, #-136]
	ldr	r2, .L259+4
	ldr	r3, [fp, #-136]
	add	r3, r3, r2
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-128]
	mov	ip, r2
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-124]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	ldr	r2, [fp, #-448]
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-112]
	ldr	r2, .L259+12
	ldr	r3, [fp, #-112]
	add	r3, r3, r2
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	add	r3, r3, #56
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	ldr	r2, [fp, #-424]
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	lsl	r3, r3, #3
	str	r3, [fp, #-92]
	ldr	r2, .L259+12
	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, #48
	str	r3, [fp, #-76]
	mov	r3, #0
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-72]
	str	r2, [r3]
	nop
.L250:
.L251:
	ldr	r3, [fp, #-464]
	add	r3, r3, #1
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-476]
	add	r3, r3, #1
	str	r3, [fp, #-476]
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r1, [fp, #-64]
	ldr	r0, [fp, #-448]
	bl	cpqarray_register_ctlr
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmn	r3, #1
	bne	.L235
	ldr	r1, [fp, #-448]
	ldr	r0, .L259+36
	bl	printk
	b	.L235
.L254:
	nop
	b	.L238
.L255:
	nop
	b	.L238
.L256:
	nop
.L238:
	ldr	r3, [fp, #-464]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L260:
	.align	2
.L259:
	.word	eisa
	.word	products
	.word	.LC38
	.word	hba
	.word	2047
	.word	.LC16
	.word	.LC40
	.word	nr_ctlr
	.word	.LC30
	.word	.LC41
	.size	cpqarray_eisa_detect, .-cpqarray_eisa_detect
	.align	2
	.global	ida_open
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_open, %function
ida_open:
	@ args = 0, pretend = 0, frame = 144
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #144
	str	r0, [fp, #-144]
	str	r1, [fp, #-148]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	add	r3, r3, #16
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	add	r3, r3, #24
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	str	r3, [fp, #-116]
	ldr	r0, [fp, #-116]
	bl	get_drv
	str	r0, [fp, #-112]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	add	r3, r3, #16
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	ldr	r3, [r3]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	add	r3, r3, #24
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r0, [fp, #-84]
	bl	get_host
	str	r0, [fp, #-80]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-76]
	nop
.L262:
.L263:
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	bne	.L264
	mov	r0, #17
	bl	capable
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-60]
	cmp	r3, #0
	bne	.L265
	mvn	r3, #5
	b	.L266
.L265:
	mov	r0, #21
	bl	capable
	str	r0, [fp, #-56]
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	bne	.L264
	mov	r3, #0
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	add	r3, r3, #112
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-48]
	add	r3, r2, r3
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	cmp	r2, r3
	beq	.L264
	mvn	r3, #5
	b	.L266
.L264:
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #108
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-76]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #108
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	add	r2, r2, #1
	str	r2, [r3]
	mov	r3, #0
.L266:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ida_open, .-ida_open
	.align	2
	.global	ida_release
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_release, %function
ida_release:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-64]
	str	r1, [fp, #-68]
	ldr	r3, [fp, #-64]
	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, [fp, #-48]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #24
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-36]
	bl	get_host
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #108
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #108
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	sub	r2, r2, #1
	str	r2, [r3]
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ida_release, .-ida_release
	.section	.rodata
	.align	2
.LC42:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	do_ida_request
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_ida_request, %function
do_ida_request:
	@ args = 0, pretend = 0, frame = 1072
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #1072
	sub	sp, sp, #8
	str	r0, [fp, #-1072]
	ldr	r3, .L293
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-1072]
	str	r3, [fp, #-1056]
	ldr	r3, [fp, #-1056]
	add	r3, r3, #48
	str	r3, [fp, #-1052]
	ldr	r3, [fp, #-1052]
	ldr	r3, [r3]
	str	r3, [fp, #-1048]
	ldr	r3, [fp, #-1048]
	str	r3, [fp, #-1044]
	ldr	r3, [fp, #-1072]
	str	r3, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	add	r3, r3, #56
	str	r3, [fp, #-1036]
	ldr	r3, [fp, #-1036]
	str	r3, [fp, #-1032]
	ldr	r3, [fp, #-1032]
	str	r3, [fp, #-1028]
	ldr	r1, [fp, #-1028]
	mov	r0, #7
	bl	test_bit
	str	r0, [fp, #-1024]
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	bne	.L289
	nop
.L270:
	ldr	r0, [fp, #-1072]
	bl	elv_next_request
	str	r0, [fp, #-1020]
	ldr	r3, [fp, #-1020]
	cmp	r3, #0
	beq	.L290
	ldr	r3, [fp, #-1020]
	str	r3, [fp, #-1016]
	ldr	r3, [fp, #-1016]
	add	r3, r3, #96
	str	r3, [fp, #-1012]
	ldr	r2, [fp, #-1012]
	sub	r3, fp, #4
	sub	r3, r3, #1056
	sub	r3, r3, #6
	ldrh	r2, [r2]	@ movhi
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #4
	sub	r3, r3, #1056
	sub	r3, r3, #6
	ldrh	r3, [r3]
	str	r3, [fp, #-1008]
	ldr	r3, [fp, #-1008]
	cmp	r3, #32
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-1004]
	ldr	r0, [fp, #-1004]
	bl	__CPROVER_assume
	mov	r1, #1
	ldr	r0, [fp, #-1044]
	bl	cmd_alloc
	str	r0, [fp, #-1000]
	mov	r3, #0
	str	r3, [fp, #-996]
	ldr	r3, [fp, #-996]
	str	r3, [fp, #-992]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-988]
	ldr	r2, [fp, #-988]
	ldr	r3, [fp, #-992]
	cmp	r2, r3
	beq	.L291
	ldr	r0, [fp, #-1020]
	bl	blkdev_dequeue_request
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-984]
	ldr	r3, [fp, #-984]
	add	r3, r3, #288
	str	r3, [fp, #-980]
	ldr	r3, [fp, #-980]
	ldr	r2, [fp, #-1044]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-976]
	ldr	r3, [fp, #-976]
	add	r3, r3, #112
	str	r3, [fp, #-972]
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-968]
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-972]
	add	r3, r2, r3
	str	r3, [fp, #-964]
	ldr	r3, [fp, #-964]
	str	r3, [fp, #-960]
	ldr	r3, [fp, #-1020]
	str	r3, [fp, #-956]
	ldr	r3, [fp, #-956]
	add	r3, r3, #88
	str	r3, [fp, #-952]
	ldr	r3, [fp, #-952]
	ldr	r3, [r3]
	str	r3, [fp, #-948]
	ldr	r3, [fp, #-948]
	str	r3, [fp, #-944]
	ldr	r3, [fp, #-944]
	add	r3, r3, #64
	str	r3, [fp, #-940]
	ldr	r3, [fp, #-940]
	ldr	r3, [r3]
	str	r3, [fp, #-936]
	ldr	r3, [fp, #-936]
	str	r3, [fp, #-932]
	ldr	r2, [fp, #-932]
	ldr	r3, [fp, #-960]
	sub	r3, r2, r3
	asr	r2, r3, #3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r1, r3, #4
	add	r3, r3, r1
	lsl	r1, r3, #8
	add	r3, r3, r1
	lsl	r1, r3, #16
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-928]
	ldr	r3, [fp, #-928]
	and	r2, r3, #255
	ldr	r3, [fp, #-1000]
	strb	r2, [r3]
	mov	r3, #2
	str	r3, [fp, #-924]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-920]
	ldr	r2, [fp, #-920]
	ldr	r3, [fp, #-924]
	add	r3, r2, r3
	str	r3, [fp, #-916]
	mov	r3, #68
	str	r3, [fp, #-912]
	ldr	r3, [fp, #-916]
	ldr	r2, [fp, #-912]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-908]
	ldr	r3, [fp, #-908]
	add	r3, r3, #276
	str	r3, [fp, #-904]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-900]
	ldr	r3, [fp, #-900]
	add	r3, r3, #276
	str	r3, [fp, #-896]
	ldr	r3, [fp, #-896]
	ldr	r3, [r3]
	str	r3, [fp, #-892]
	ldr	r3, [fp, #-892]
	str	r3, [fp, #-888]
	ldr	r3, [fp, #-888]
	add	r3, r3, #272
	str	r3, [fp, #-884]
	ldr	r3, [fp, #-904]
	ldr	r2, [fp, #-884]
	str	r2, [r3]
	mov	r3, #4
	str	r3, [fp, #-880]
	ldr	r3, [fp, #-880]
	add	r3, r3, #4
	str	r3, [fp, #-876]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-872]
	ldr	r2, [fp, #-872]
	ldr	r3, [fp, #-876]
	add	r3, r2, r3
	str	r3, [fp, #-868]
	ldr	r3, [fp, #-1020]
	str	r3, [fp, #-864]
	ldr	r3, [fp, #-864]
	add	r3, r3, #48
	str	r3, [fp, #-860]
	ldr	r3, [fp, #-860]
	ldr	r3, [r3]
	str	r3, [fp, #-856]
	ldr	r3, [fp, #-868]
	ldr	r2, [fp, #-856]
	str	r2, [r3]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-852]
	ldr	r3, [fp, #-852]
	add	r3, r3, #312
	str	r3, [fp, #-848]
	ldr	r3, [fp, #-848]
	ldr	r2, [fp, #-1020]
	str	r2, [r3]
	nop
.L274:
.L275:
	mov	r3, #0
	str	r3, [fp, #-844]
	sub	r3, fp, #520
	ldr	r2, [fp, #-844]
	add	r3, r2, r3
	str	r3, [fp, #-840]
	ldr	r3, [fp, #-840]
	str	r3, [fp, #-836]
	ldr	r2, [fp, #-836]
	ldr	r1, [fp, #-1020]
	ldr	r0, [fp, #-1072]
	bl	blk_rq_map_sg
	str	r0, [fp, #-832]
	ldr	r3, [fp, #-1020]
	str	r3, [fp, #-828]
	ldr	r3, [fp, #-828]
	add	r3, r3, #40
	str	r3, [fp, #-824]
	ldr	r3, [fp, #-824]
	ldr	r3, [r3]
	str	r3, [fp, #-820]
	ldr	r3, [fp, #-820]
	and	r3, r3, #1
	str	r3, [fp, #-816]
	ldr	r3, [fp, #-816]
	cmp	r3, #0
	bne	.L276
	mov	r3, #2
	str	r3, [fp, #-1060]
	b	.L277
.L276:
	mov	r3, #1
	str	r3, [fp, #-1060]
.L277:
	mov	r3, #0
	str	r3, [fp, #-1064]
.L278:
	ldr	r2, [fp, #-1064]
	ldr	r3, [fp, #-832]
	cmp	r2, r3
	bge	.L292
	ldr	r3, [fp, #-1064]
	lsl	r3, r3, #3
	str	r3, [fp, #-640]
	ldr	r3, [fp, #-640]
	add	r3, r3, #12
	str	r3, [fp, #-636]
	ldr	r3, [fp, #-636]
	add	r3, r3, #4
	str	r3, [fp, #-632]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-628]
	ldr	r2, [fp, #-628]
	ldr	r3, [fp, #-632]
	add	r3, r2, r3
	str	r3, [fp, #-624]
	ldr	r2, [fp, #-1064]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-620]
	ldr	r3, [fp, #-620]
	add	r3, r3, #16
	str	r3, [fp, #-616]
	sub	r3, fp, #520
	ldr	r2, [fp, #-616]
	add	r3, r2, r3
	str	r3, [fp, #-612]
	ldr	r2, [fp, #-612]
	ldr	r3, [fp, #-624]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-608]
	add	r3, r3, #48
	str	r3, [fp, #-604]
	ldr	r3, [fp, #-604]
	ldr	r3, [r3]
	str	r3, [fp, #-600]
	ldr	r2, [fp, #-1064]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-596]
	sub	r3, fp, #520
	ldr	r2, [fp, #-596]
	add	r3, r2, r3
	str	r3, [fp, #-592]
	ldr	r3, [fp, #-592]
	ldr	r3, [r3]
	str	r3, [fp, #-588]
	ldr	r2, [fp, #-1064]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-584]
	ldr	r3, [fp, #-584]
	add	r3, r3, #8
	str	r3, [fp, #-580]
	sub	r3, fp, #520
	ldr	r2, [fp, #-580]
	add	r3, r2, r3
	str	r3, [fp, #-576]
	ldr	r3, [fp, #-576]
	ldr	r3, [r3]
	str	r3, [fp, #-572]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-568]
	ldr	r2, [fp, #-1064]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-564]
	ldr	r3, [fp, #-564]
	add	r3, r3, #16
	str	r3, [fp, #-560]
	sub	r3, fp, #520
	ldr	r2, [fp, #-560]
	add	r3, r2, r3
	str	r3, [fp, #-556]
	ldr	r3, [fp, #-556]
	ldr	r3, [r3]
	str	r3, [fp, #-552]
	ldr	r3, [fp, #-1060]
	str	r3, [sp]
	ldr	r3, [fp, #-552]
	ldr	r2, [fp, #-568]
	ldr	r1, [fp, #-588]
	ldr	r0, [fp, #-600]
	bl	pci_map_page
	str	r0, [fp, #-548]
	ldr	r3, [fp, #-1064]
	lsl	r3, r3, #3
	str	r3, [fp, #-544]
	ldr	r3, [fp, #-544]
	add	r3, r3, #4
	str	r3, [fp, #-540]
	ldr	r3, [fp, #-540]
	add	r3, r3, #12
	str	r3, [fp, #-536]
	ldr	r3, [fp, #-536]
	add	r3, r3, #4
	str	r3, [fp, #-532]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-528]
	ldr	r2, [fp, #-528]
	ldr	r3, [fp, #-532]
	add	r3, r2, r3
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-524]
	ldr	r2, [fp, #-548]
	str	r2, [r3]
	ldr	r3, [fp, #-1064]
	add	r3, r3, #1
	str	r3, [fp, #-1064]
	b	.L278
.L280:
.L292:
	nop
.L281:
	nop
.L282:
	mov	r3, #10
	str	r3, [fp, #-812]
	ldr	r3, [fp, #-812]
	add	r3, r3, #4
	str	r3, [fp, #-808]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-804]
	ldr	r2, [fp, #-804]
	ldr	r3, [fp, #-808]
	add	r3, r2, r3
	str	r3, [fp, #-800]
	ldr	r3, [fp, #-800]
	ldr	r2, [fp, #-832]
	and	r2, r2, #255
	strb	r2, [r3]
	mov	r3, #8
	str	r3, [fp, #-796]
	ldr	r3, [fp, #-796]
	add	r3, r3, #4
	str	r3, [fp, #-792]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-788]
	ldr	r2, [fp, #-788]
	ldr	r3, [fp, #-792]
	add	r3, r2, r3
	str	r3, [fp, #-784]
	ldr	r3, [fp, #-1020]
	str	r3, [fp, #-780]
	ldr	r3, [fp, #-780]
	add	r3, r3, #56
	str	r3, [fp, #-776]
	ldr	r3, [fp, #-776]
	ldr	r3, [r3]
	str	r3, [fp, #-772]
	ldr	r3, [fp, #-784]
	ldr	r2, [fp, #-772]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1020]
	str	r3, [fp, #-768]
	ldr	r3, [fp, #-768]
	add	r3, r3, #40
	str	r3, [fp, #-764]
	ldr	r3, [fp, #-764]
	ldr	r3, [r3]
	str	r3, [fp, #-760]
	ldr	r3, [fp, #-760]
	and	r3, r3, #1
	str	r3, [fp, #-756]
	ldr	r3, [fp, #-756]
	cmp	r3, #0
	bne	.L283
	mov	r3, #2
	str	r3, [fp, #-736]
	ldr	r3, [fp, #-736]
	add	r3, r3, #4
	str	r3, [fp, #-732]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-728]
	ldr	r2, [fp, #-728]
	ldr	r3, [fp, #-732]
	add	r3, r2, r3
	str	r3, [fp, #-724]
	ldr	r3, [fp, #-724]
	mov	r2, #32
	strb	r2, [r3]
	b	.L284
.L283:
	mov	r3, #2
	str	r3, [fp, #-752]
	ldr	r3, [fp, #-752]
	add	r3, r3, #4
	str	r3, [fp, #-748]
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-744]
	ldr	r2, [fp, #-744]
	ldr	r3, [fp, #-748]
	add	r3, r2, r3
	str	r3, [fp, #-740]
	ldr	r3, [fp, #-740]
	mov	r2, #48
	strb	r2, [r3]
.L284:
	ldr	r3, [fp, #-1000]
	str	r3, [fp, #-720]
	ldr	r3, [fp, #-720]
	add	r3, r3, #320
	str	r3, [fp, #-716]
	ldr	r3, [fp, #-716]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-712]
	ldr	r3, [fp, #-712]
	add	r3, r3, #544
	str	r3, [fp, #-708]
	ldr	r3, [fp, #-708]
	str	r3, [fp, #-704]
	ldr	r1, [fp, #-1000]
	ldr	r0, [fp, #-704]
	bl	addQ
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-700]
	ldr	r3, [fp, #-700]
	add	r3, r3, #600
	str	r3, [fp, #-696]
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-692]
	ldr	r3, [fp, #-692]
	add	r3, r3, #600
	str	r3, [fp, #-688]
	ldr	r3, [fp, #-688]
	ldr	r3, [r3]
	str	r3, [fp, #-684]
	ldr	r3, [fp, #-696]
	ldr	r2, [fp, #-684]
	add	r2, r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-680]
	ldr	r3, [fp, #-680]
	add	r3, r3, #604
	str	r3, [fp, #-676]
	ldr	r3, [fp, #-676]
	ldr	r3, [r3]
	str	r3, [fp, #-672]
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-668]
	ldr	r3, [fp, #-668]
	add	r3, r3, #600
	str	r3, [fp, #-664]
	ldr	r3, [fp, #-664]
	ldr	r3, [r3]
	str	r3, [fp, #-660]
	ldr	r2, [fp, #-660]
	ldr	r3, [fp, #-672]
	cmp	r2, r3
	bls	.L270
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-656]
	ldr	r3, [fp, #-656]
	add	r3, r3, #604
	str	r3, [fp, #-652]
	ldr	r3, [fp, #-1044]
	str	r3, [fp, #-648]
	ldr	r3, [fp, #-648]
	add	r3, r3, #600
	str	r3, [fp, #-644]
	ldr	r2, [fp, #-644]
	ldr	r3, [fp, #-652]
	ldr	r2, [r2]
	str	r2, [r3]
	b	.L270
.L289:
	nop
	b	.L271
.L290:
	nop
	b	.L271
.L291:
	nop
.L271:
	ldr	r0, [fp, #-1044]
	bl	start_io
	nop
	ldr	r3, .L293
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L287
	bl	__stack_chk_fail
.L287:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L294:
	.align	2
.L293:
	.word	.LC42
	.size	do_ida_request, .-do_ida_request
	.align	2
	.global	start_io
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_io, %function
start_io:
	@ 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, #-112]
.L296:
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	add	r3, r3, #544
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	mov	r3, #0
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-88]
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-92]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L302
	mov	r3, #520
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-76]
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-80]
	add	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r0, [fp, #-112]
	blx	r3
	str	r0, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	beq	.L303
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #544
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-52]
	bl	removeQ
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #600
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r3, r3, #600
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-32]
	sub	r2, r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #504
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-112]
	blx	r3
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #552
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-8]
	bl	addQ
	b	.L296
.L302:
	nop
.L298:
	b	.L295
.L303:
	nop
.L295:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	start_io, .-start_io
	.section	.rodata
	.align	2
.LC43:
	.ascii	"<4>cpqarray: Completion of %08lx ignored\012\000"
	.text
	.align	2
	.global	do_ida_intr
	.syntax unified
	.arm
	.fpu softvfp
	.type	do_ida_intr, %function
do_ida_intr:
	@ args = 0, pretend = 0, frame = 304
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #304
	str	r0, [fp, #-304]
	str	r1, [fp, #-308]
	ldr	r3, [fp, #-308]
	str	r3, [fp, #-288]
	mov	r3, #528
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-280]
	ldr	r2, [fp, #-280]
	ldr	r3, [fp, #-284]
	add	r3, r2, r3
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	ldr	r0, [fp, #-288]
	blx	r3
	str	r0, [fp, #-268]
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	bne	.L305
	mov	r3, #0
	b	.L306
.L305:
	ldr	r3, [fp, #-288]
	ldr	r3, [r3]
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	lsl	r3, r3, #3
	str	r3, [fp, #-260]
	ldr	r2, .L324
	ldr	r3, [fp, #-260]
	add	r3, r3, r2
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	ldr	r3, [r3]
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	add	r3, r3, #592
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	str	r3, [fp, #-240]
	ldr	r1, [fp, #-236]
	ldr	r0, [fp, #-240]
	bl	spin_lock_irqsave
	ldr	r3, [fp, #-268]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L307
.L319:
	nop
.L308:
	mov	r3, #536
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-228]
	ldr	r2, [fp, #-228]
	ldr	r3, [fp, #-232]
	add	r3, r2, r3
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	ldr	r0, [fp, #-288]
	blx	r3
	str	r0, [fp, #-216]
	ldr	r3, [fp, #-216]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	cmp	r3, #0
	beq	.L320
	ldr	r3, [fp, #-212]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-212]
	bic	r3, r3, #3
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	add	r3, r3, #552
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	ldr	r3, [r3]
	str	r3, [fp, #-292]
	mov	r3, #0
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-188]
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-192]
	cmp	r2, r3
	bne	.L321
	ldr	r3, [fp, #-208]
	str	r3, [fp, #-52]
	ldr	r1, [fp, #-52]
	ldr	r0, .L324+4
	bl	printk
	b	.L308
.L321:
	nop
.L311:
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	add	r3, r3, #284
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	ldr	r3, [r3]
	str	r3, [fp, #-176]
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-212]
	cmp	r2, r3
	beq	.L322
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	add	r3, r3, #304
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	add	r3, r3, #552
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-148]
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-152]
	cmp	r2, r3
	beq	.L323
	b	.L321
.L322:
	nop
	b	.L313
.L323:
	nop
.L313:
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	add	r3, r3, #284
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r2, [fp, #-136]
	ldr	r3, [fp, #-212]
	cmp	r2, r3
	bne	.L319
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	add	r3, r3, #552
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	str	r3, [fp, #-124]
	ldr	r1, [fp, #-292]
	ldr	r0, [fp, #-124]
	bl	removeQ
	ldr	r3, [fp, #-208]
	and	r3, r3, #3
	cmp	r3, #0
	beq	.L316
	mov	r3, #3
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-112]
	ldr	r2, [fp, #-112]
	ldr	r3, [fp, #-116]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldrb	r3, [r3]
	strb	r3, [fp, #-293]
	ldrb	r3, [fp, #-293]	@ zero_extendqisi2
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	bne	.L316
	mov	r3, #3
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	add	r3, r3, #4
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-92]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-96]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	mov	r2, #16
	strb	r2, [r3]
.L316:
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #320
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	bne	.L317
	mov	r1, #0
	ldr	r0, [fp, #-292]
	bl	complete_command
	mov	r2, #1
	ldr	r1, [fp, #-292]
	ldr	r0, [fp, #-288]
	bl	cmd_free
	b	.L308
.L317:
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #320
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	cmp	r3, #1
	bne	.L308
	ldr	r3, [fp, #-292]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #320
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	mov	r2, #2
	str	r2, [r3]
	b	.L308
.L310:
.L320:
	nop
.L307:
	ldr	r3, .L324+8
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #584
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-48]
	ldr	r0, [fp, #-36]
	blx	r3
	ldr	r3, [fp, #-288]
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	str	r3, [fp, #-28]
	ldr	r2, .L324
	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, #592
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-236]
	ldr	r0, [fp, #-8]
	bl	spin_unlock_irqrestore
	mov	r3, #1
.L306:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L325:
	.align	2
.L324:
	.word	hba
	.word	.LC43
	.word	do_ida_request
	.size	do_ida_intr, .-do_ida_intr
	.align	2
	.global	ida_timer
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_timer, %function
ida_timer:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #624
	str	r3, [fp, #-28]
	ldr	r3, .L328
	ldr	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r2, r2, #500
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #624
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	add_timer
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #656
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L329:
	.align	2
.L328:
	.word	jiffies
	.size	ida_timer, .-ida_timer
	.align	2
	.global	ida_getgeo
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_getgeo, %function
ida_getgeo:
	@ args = 0, pretend = 0, frame = 120
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	ldr	r3, [fp, #-120]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	add	r3, r3, #24
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	ldr	r0, [fp, #-108]
	bl	get_drv
	str	r0, [fp, #-104]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	add	r3, r3, #8
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L331
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	and	r2, r3, #255
	ldr	r3, [fp, #-124]
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #16
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-40]
	ldr	r2, [fp, #-28]
	and	r2, r2, #255
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-8]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	b	.L332
.L331:
	ldr	r3, [fp, #-124]
	mvn	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	add	r3, r3, #1
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	mov	r2, #63
	strb	r2, [r3]
	ldr	r3, [fp, #-124]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	add	r3, r3, #2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, .L334
	umull	r1, r3, r2, r3
	sub	r2, r2, r3
	lsr	r2, r2, #1
	add	r3, r3, r2
	lsr	r3, r3, #13
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-60]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
.L332:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L335:
	.align	2
.L334:
	.word	85284443
	.size	ida_getgeo, .-ida_getgeo
	.section	.rodata
	.align	2
.LC44:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	ida_ioctl
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_ioctl, %function
ida_ioctl:
	@ args = 0, pretend = 0, frame = 312
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #312
	str	r0, [fp, #-304]
	str	r1, [fp, #-308]
	str	r2, [fp, #-312]
	str	r3, [fp, #-316]
	ldr	r3, .L380
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-304]
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	add	r3, r3, #16
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	ldr	r3, [r3]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	add	r3, r3, #24
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	ldr	r3, [r3]
	str	r3, [fp, #-276]
	ldr	r0, [fp, #-276]
	bl	get_drv
	str	r0, [fp, #-272]
	ldr	r3, [fp, #-272]
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-304]
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	add	r3, r3, #16
	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	r0, [fp, #-244]
	bl	get_host
	str	r0, [fp, #-240]
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-316]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-312]
	ldr	r2, .L380+4
	cmp	r3, r2
	beq	.L371
	ldr	r3, [fp, #-312]
	ldr	r2, .L380+8
	cmp	r3, r2
	beq	.L372
	ldr	r3, [fp, #-312]
	ldr	r2, .L380+12
	cmp	r3, r2
	beq	.L373
	ldr	r3, [fp, #-312]
	ldr	r2, .L380+16
	cmp	r3, r2
	beq	.L374
	ldr	r3, [fp, #-312]
	ldr	r2, .L380+20
	cmp	r3, r2
	beq	.L375
	ldr	r3, [fp, #-312]
	ldr	r2, .L380+24
	cmp	r3, r2
	bne	.L376
	b	.L370
.L371:
	nop
.L338:
	ldr	r3, [fp, #-232]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	add	r3, r3, #532
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-268]
	str	r3, [fp, #-24]
	mov	r2, #24
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-28]
	bl	copy_to_user
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L350
	mvn	r3, #13
	b	.L363
.L350:
	mov	r3, #0
	b	.L363
.L372:
	nop
.L340:
	mov	r0, #17
	bl	capable
	str	r0, [fp, #-108]
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	bne	.L352
	mvn	r3, #0
	b	.L363
.L352:
	mov	r3, #1568
	str	r3, [fp, #-104]
	mov	r1, #208
	ldr	r0, [fp, #-104]
	bl	kmalloc
	str	r0, [fp, #-100]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	bne	.L353
	mvn	r3, #11
	b	.L363
.L353:
	mvn	r3, #13
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-232]
	str	r3, [fp, #-88]
	mov	r2, #1568
	ldr	r1, [fp, #-88]
	ldr	r0, [fp, #-92]
	bl	copy_from_user
	str	r0, [fp, #-84]
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	bne	.L377
	mov	r3, #0
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	add	r3, r3, #112
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-72]
	ldr	r3, [fp, #-76]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-268]
	ldr	r3, [fp, #-64]
	sub	r3, r2, r3
	asr	r2, r3, #3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r1, r3, #4
	add	r3, r3, r1
	lsl	r1, r3, #8
	add	r3, r3, r1
	lsl	r1, r3, #16
	add	r3, r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r2
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-96]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-236]
	bl	ida_ctlr_ioctl
	str	r0, [fp, #-300]
	ldr	r3, [fp, #-300]
	cmp	r3, #0
	bne	.L378
	mvn	r3, #13
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-232]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-52]
	mov	r2, #1568
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-56]
	bl	copy_to_user
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	bne	.L379
	mov	r3, #0
	str	r3, [fp, #-300]
	b	.L355
.L377:
	nop
	b	.L355
.L378:
	nop
	b	.L355
.L379:
	nop
.L355:
	ldr	r3, [fp, #-96]
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-44]
	bl	kfree
	ldr	r3, [fp, #-300]
	b	.L363
.L373:
	nop
.L342:
	ldr	r3, [fp, #-316]
	cmp	r3, #0
	bne	.L358
	mvn	r3, #21
	b	.L363
.L358:
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	add	r3, r3, #32
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	ldr	r3, [r3]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-316]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r1, [fp, #-112]
	ldr	r0, [fp, #-120]
	bl	put_user
	mov	r3, #0
	b	.L363
.L374:
	nop
.L344:
	ldr	r0, [fp, #-304]
	bl	iminor
	str	r0, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L359
	mvn	r3, #5
	b	.L363
.L359:
	ldr	r0, [fp, #-236]
	bl	revalidate_allvol
	str	r0, [fp, #-132]
	ldr	r3, [fp, #-132]
	b	.L363
.L375:
	nop
.L346:
	ldr	r3, [fp, #-316]
	cmp	r3, #0
	bne	.L360
	mvn	r3, #21
	b	.L363
.L360:
	mov	r3, #1536
	str	r3, [fp, #-156]
	mov	r3, #131072
	str	r3, [fp, #-152]
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-156]
	orr	r3, r2, r3
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-316]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-140]
	ldr	r1, [fp, #-140]
	ldr	r0, [fp, #-148]
	bl	put_user
	mov	r3, #0
	b	.L363
.L370:
.L348:
	ldr	r3, [fp, #-316]
	cmp	r3, #0
	bne	.L361
	mvn	r3, #21
	b	.L363
.L361:
	sub	r3, fp, #16
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	add	r3, r3, #48
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	ldr	r3, [r3]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	ldrb	r2, [r3]	@ zero_extendqisi2
	ldr	r3, [fp, #-228]
	strb	r2, [r3]
	sub	r3, fp, #16
	add	r3, r3, #1
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	add	r3, r3, #48
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	ldr	r3, [r3]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	add	r3, r3, #8
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	ldr	r3, [r3]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-208]
	ldr	r2, [fp, #-184]
	and	r2, r2, #255
	strb	r2, [r3]
	sub	r3, fp, #16
	add	r3, r3, #4
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	add	r3, r3, #56
	str	r3, [fp, #-172]
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-180]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-316]
	str	r3, [fp, #-168]
	sub	r3, fp, #16
	str	r3, [fp, #-164]
	mov	r2, #8
	ldr	r1, [fp, #-164]
	ldr	r0, [fp, #-168]
	bl	copy_to_user
	str	r0, [fp, #-160]
	ldr	r3, [fp, #-160]
	cmp	r3, #0
	beq	.L362
	mvn	r3, #13
	b	.L363
.L362:
	mov	r3, #0
	b	.L363
.L376:
	nop
.L349:
	mvn	r3, #21
.L363:
	ldr	r2, .L380
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L364
	bl	__stack_chk_fail
.L364:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L381:
	.align	2
.L380:
	.word	.LC44
	.word	656877608
	.word	673720617
	.word	690565168
	.word	808464689
	.word	825307698
	.word	842150707
	.size	ida_ioctl, .-ida_ioctl
	.align	2
	.global	ida_ctlr_ioctl
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_ctlr_ioctl, %function
ida_ctlr_ioctl:
	@ args = 0, pretend = 0, frame = 1176
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #1168
	sub	sp, sp, #12
	str	r0, [fp, #-1176]
	str	r1, [fp, #-1180]
	str	r2, [fp, #-1184]
	ldr	r3, [fp, #-1176]
	ldr	r3, [r3]
	str	r3, [fp, #-1164]
	mov	r3, #0
	str	r3, [fp, #-1168]
	mov	r1, #0
	ldr	r0, [fp, #-1176]
	bl	cmd_alloc
	str	r0, [fp, #-1160]
	mov	r3, #0
	str	r3, [fp, #-1156]
	ldr	r3, [fp, #-1156]
	str	r3, [fp, #-1152]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1148]
	ldr	r2, [fp, #-1148]
	ldr	r3, [fp, #-1152]
	cmp	r2, r3
	bne	.L383
	mvn	r3, #11
	b	.L384
.L383:
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1144]
	ldr	r3, [fp, #-1144]
	add	r3, r3, #288
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1140]
	ldr	r2, [fp, #-1164]
	str	r2, [r3]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-1136]
	ldr	r3, [fp, #-1136]
	add	r3, r3, #2
	str	r3, [fp, #-1132]
	ldr	r3, [fp, #-1132]
	ldrb	r3, [r3]
	strb	r3, [fp, #-1172]
	ldrb	r3, [fp, #-1172]	@ zero_extendqisi2
	str	r3, [fp, #-1128]
	ldr	r3, [fp, #-1128]
	and	r3, r3, #128
	cmp	r3, #0
	beq	.L385
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-1124]
	ldr	r3, [fp, #-1124]
	add	r3, r3, #2
	str	r3, [fp, #-1120]
	ldr	r3, [fp, #-1120]
	ldrb	r3, [r3]
	strb	r3, [fp, #-1171]
	ldrb	r3, [fp, #-1171]	@ zero_extendqisi2
	str	r3, [fp, #-1116]
	ldr	r3, [fp, #-1116]
	bic	r3, r3, #128
	str	r3, [fp, #-1112]
	ldr	r3, [fp, #-1112]
	and	r2, r3, #255
	ldr	r3, [fp, #-1160]
	strb	r2, [r3]
	b	.L386
.L385:
	ldr	r3, [fp, #-1180]
	and	r2, r3, #255
	ldr	r3, [fp, #-1160]
	strb	r2, [r3]
.L386:
	mov	r3, #2
	str	r3, [fp, #-1108]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1104]
	ldr	r2, [fp, #-1104]
	ldr	r3, [fp, #-1108]
	add	r3, r2, r3
	str	r3, [fp, #-1100]
	mov	r3, #68
	str	r3, [fp, #-1096]
	ldr	r3, [fp, #-1100]
	ldr	r2, [fp, #-1096]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #-1092]
	add	r3, r3, #276
	str	r3, [fp, #-1088]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1084]
	ldr	r3, [fp, #-1084]
	add	r3, r3, #276
	str	r3, [fp, #-1080]
	ldr	r3, [fp, #-1080]
	ldr	r3, [r3]
	str	r3, [fp, #-1076]
	ldr	r3, [fp, #-1076]
	str	r3, [fp, #-1072]
	ldr	r3, [fp, #-1072]
	add	r3, r3, #272
	str	r3, [fp, #-1068]
	ldr	r3, [fp, #-1088]
	ldr	r2, [fp, #-1068]
	str	r2, [r3]
	mov	r3, #2
	str	r3, [fp, #-1064]
	ldr	r3, [fp, #-1064]
	add	r3, r3, #4
	str	r3, [fp, #-1060]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1056]
	ldr	r2, [fp, #-1056]
	ldr	r3, [fp, #-1060]
	add	r3, r2, r3
	str	r3, [fp, #-1052]
	ldr	r3, [fp, #-1052]
	ldr	r2, [fp, #-1184]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	mov	r3, #4
	str	r3, [fp, #-1048]
	ldr	r3, [fp, #-1048]
	add	r3, r3, #4
	str	r3, [fp, #-1044]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1040]
	ldr	r2, [fp, #-1040]
	ldr	r3, [fp, #-1044]
	add	r3, r2, r3
	str	r3, [fp, #-1036]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-1032]
	ldr	r3, [fp, #-1032]
	add	r3, r3, #4
	str	r3, [fp, #-1028]
	ldr	r2, [fp, #-1028]
	ldr	r3, [fp, #-1036]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #8
	str	r3, [fp, #-1024]
	ldr	r3, [fp, #-1024]
	add	r3, r3, #4
	str	r3, [fp, #-1020]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1016]
	ldr	r2, [fp, #-1016]
	ldr	r3, [fp, #-1020]
	add	r3, r2, r3
	str	r3, [fp, #-1012]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-1008]
	ldr	r3, [fp, #-1008]
	add	r3, r3, #8
	str	r3, [fp, #-1004]
	ldr	r2, [fp, #-1004]
	ldr	r3, [fp, #-1012]
	ldrh	r2, [r2]
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-1000]
	ldr	r3, [fp, #-1000]
	add	r3, r3, #320
	str	r3, [fp, #-996]
	ldr	r3, [fp, #-996]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-1184]
	ldrb	r3, [r3]
	strb	r3, [fp, #-1170]
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #145
	beq	.L438
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L439
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #246
	beq	.L440
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #168
	beq	.L441
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #48
	beq	.L442
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #49
	beq	.L443
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #65
	beq	.L444
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #210
	beq	.L445
	ldrb	r3, [fp, #-1170]	@ zero_extendqisi2
	cmp	r3, #247
	bne	.L446
	b	.L409
.L438:
	nop
.L388:
	mov	r3, #0
	str	r3, [fp, #-540]
	ldr	r3, [fp, #-540]
	add	r3, r3, #8
	str	r3, [fp, #-536]
	ldr	r3, [fp, #-536]
	add	r3, r3, #16
	str	r3, [fp, #-532]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-528]
	ldr	r2, [fp, #-528]
	ldr	r3, [fp, #-532]
	add	r3, r2, r3
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-524]
	ldr	r3, [r3]
	str	r3, [fp, #-520]
	mov	r1, #208
	ldr	r0, [fp, #-520]
	bl	kmalloc
	str	r0, [fp, #-1168]
	ldr	r3, [fp, #-1168]
	cmp	r3, #0
	bne	.L400
	mvn	r3, #11
	str	r3, [fp, #-684]
	mov	r2, #0
	ldr	r1, [fp, #-1160]
	ldr	r0, [fp, #-1176]
	bl	cmd_free
	ldr	r3, [fp, #-684]
	b	.L384
.L400:
	mov	r3, #0
	str	r3, [fp, #-516]
	ldr	r3, [fp, #-516]
	add	r3, r3, #16
	str	r3, [fp, #-512]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-508]
	ldr	r2, [fp, #-508]
	ldr	r3, [fp, #-512]
	add	r3, r2, r3
	str	r3, [fp, #-504]
	ldr	r3, [fp, #-504]
	ldr	r3, [r3]
	str	r3, [fp, #-500]
	mov	r3, #0
	str	r3, [fp, #-496]
	ldr	r3, [fp, #-496]
	add	r3, r3, #8
	str	r3, [fp, #-492]
	ldr	r3, [fp, #-492]
	add	r3, r3, #16
	str	r3, [fp, #-488]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-484]
	ldr	r2, [fp, #-484]
	ldr	r3, [fp, #-488]
	add	r3, r2, r3
	str	r3, [fp, #-480]
	ldr	r3, [fp, #-480]
	ldr	r3, [r3]
	str	r3, [fp, #-476]
	ldr	r3, [fp, #-476]
	str	r3, [fp, #-472]
	ldr	r2, [fp, #-472]
	ldr	r1, [fp, #-500]
	ldr	r0, [fp, #-1168]
	bl	copy_from_user
	str	r0, [fp, #-468]
	ldr	r3, [fp, #-468]
	cmp	r3, #0
	beq	.L401
	ldr	r3, [fp, #-1168]
	str	r3, [fp, #-300]
	ldr	r0, [fp, #-300]
	bl	kfree
	mov	r2, #0
	ldr	r1, [fp, #-1160]
	ldr	r0, [fp, #-1176]
	bl	cmd_free
	mvn	r3, #13
	b	.L384
.L401:
	mov	r3, #4
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-464]
	add	r3, r3, #4
	str	r3, [fp, #-460]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-456]
	ldr	r2, [fp, #-456]
	ldr	r3, [fp, #-460]
	add	r3, r2, r3
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-448]
	add	r3, r3, #48
	str	r3, [fp, #-444]
	ldr	r3, [fp, #-444]
	ldr	r3, [r3]
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-436]
	add	r3, r3, #532
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	str	r3, [fp, #-428]
	ldr	r3, [fp, #-428]
	str	r3, [fp, #-424]
	mov	r3, #1568
	str	r3, [fp, #-420]
	ldr	r4, [fp, #-452]
	mov	r3, #0
	ldr	r2, [fp, #-420]
	ldr	r1, [fp, #-424]
	ldr	r0, [fp, #-440]
	bl	pci_map_single
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #0
	str	r3, [fp, #-416]
	ldr	r3, [fp, #-416]
	add	r3, r3, #12
	str	r3, [fp, #-412]
	ldr	r3, [fp, #-412]
	add	r3, r3, #4
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-404]
	ldr	r2, [fp, #-404]
	ldr	r3, [fp, #-408]
	add	r3, r2, r3
	str	r3, [fp, #-400]
	mov	r3, #0
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-396]
	add	r3, r3, #8
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	add	r3, r3, #16
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-384]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-388]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	ldr	r2, [fp, #-380]
	ldr	r3, [fp, #-400]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	add	r3, r3, #4
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-372]
	add	r3, r3, #12
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-368]
	add	r3, r3, #4
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-360]
	ldr	r2, [fp, #-360]
	ldr	r3, [fp, #-364]
	add	r3, r2, r3
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	add	r3, r3, #48
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-348]
	ldr	r3, [r3]
	str	r3, [fp, #-344]
	mov	r3, #0
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	add	r3, r3, #12
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	add	r3, r3, #4
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-328]
	ldr	r2, [fp, #-328]
	ldr	r3, [fp, #-332]
	add	r3, r2, r3
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	ldr	r3, [r3]
	str	r3, [fp, #-320]
	ldr	r4, [fp, #-356]
	mov	r3, #0
	ldr	r2, [fp, #-320]
	ldr	r1, [fp, #-1168]
	ldr	r0, [fp, #-344]
	bl	pci_map_single
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #10
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-316]
	add	r3, r3, #4
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-308]
	ldr	r2, [fp, #-308]
	ldr	r3, [fp, #-312]
	add	r3, r2, r3
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	mov	r2, #1
	strb	r2, [r3]
	b	.L402
.L390:
.L403:
.L439:
	nop
	b	.L404
.L440:
	nop
	b	.L404
.L441:
	nop
.L404:
	mov	r3, #0
	str	r3, [fp, #-680]
	ldr	r3, [fp, #-680]
	add	r3, r3, #8
	str	r3, [fp, #-676]
	ldr	r3, [fp, #-676]
	add	r3, r3, #16
	str	r3, [fp, #-672]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-668]
	ldr	r2, [fp, #-668]
	ldr	r3, [fp, #-672]
	add	r3, r2, r3
	str	r3, [fp, #-664]
	ldr	r3, [fp, #-664]
	ldr	r3, [r3]
	str	r3, [fp, #-660]
	mov	r1, #208
	ldr	r0, [fp, #-660]
	bl	kmalloc
	str	r0, [fp, #-1168]
	ldr	r3, [fp, #-1168]
	cmp	r3, #0
	bne	.L405
	mvn	r3, #11
	str	r3, [fp, #-684]
	mov	r2, #0
	ldr	r1, [fp, #-1160]
	ldr	r0, [fp, #-1176]
	bl	cmd_free
	ldr	r3, [fp, #-684]
	b	.L384
.L405:
	mov	r3, #0
	str	r3, [fp, #-656]
	ldr	r3, [fp, #-656]
	add	r3, r3, #12
	str	r3, [fp, #-652]
	ldr	r3, [fp, #-652]
	add	r3, r3, #4
	str	r3, [fp, #-648]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-644]
	ldr	r2, [fp, #-644]
	ldr	r3, [fp, #-648]
	add	r3, r2, r3
	str	r3, [fp, #-640]
	mov	r3, #0
	str	r3, [fp, #-636]
	ldr	r3, [fp, #-636]
	add	r3, r3, #8
	str	r3, [fp, #-632]
	ldr	r3, [fp, #-632]
	add	r3, r3, #16
	str	r3, [fp, #-628]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-624]
	ldr	r2, [fp, #-624]
	ldr	r3, [fp, #-628]
	add	r3, r2, r3
	str	r3, [fp, #-620]
	ldr	r2, [fp, #-620]
	ldr	r3, [fp, #-640]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-616]
	ldr	r3, [fp, #-616]
	add	r3, r3, #4
	str	r3, [fp, #-612]
	ldr	r3, [fp, #-612]
	add	r3, r3, #12
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-608]
	add	r3, r3, #4
	str	r3, [fp, #-604]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-600]
	ldr	r2, [fp, #-600]
	ldr	r3, [fp, #-604]
	add	r3, r2, r3
	str	r3, [fp, #-596]
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-592]
	ldr	r3, [fp, #-592]
	add	r3, r3, #48
	str	r3, [fp, #-588]
	ldr	r3, [fp, #-588]
	ldr	r3, [r3]
	str	r3, [fp, #-584]
	mov	r3, #0
	str	r3, [fp, #-580]
	ldr	r3, [fp, #-580]
	add	r3, r3, #12
	str	r3, [fp, #-576]
	ldr	r3, [fp, #-576]
	add	r3, r3, #4
	str	r3, [fp, #-572]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-568]
	ldr	r2, [fp, #-568]
	ldr	r3, [fp, #-572]
	add	r3, r2, r3
	str	r3, [fp, #-564]
	ldr	r3, [fp, #-564]
	ldr	r3, [r3]
	str	r3, [fp, #-560]
	ldr	r4, [fp, #-596]
	mov	r3, #0
	ldr	r2, [fp, #-560]
	ldr	r1, [fp, #-1168]
	ldr	r0, [fp, #-584]
	bl	pci_map_single
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #10
	str	r3, [fp, #-556]
	ldr	r3, [fp, #-556]
	add	r3, r3, #4
	str	r3, [fp, #-552]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-548]
	ldr	r2, [fp, #-548]
	ldr	r3, [fp, #-552]
	add	r3, r2, r3
	str	r3, [fp, #-544]
	ldr	r3, [fp, #-544]
	mov	r2, #1
	strb	r2, [r3]
	b	.L402
.L394:
.L406:
.L407:
.L408:
.L442:
	nop
	b	.L409
.L443:
	nop
	b	.L409
.L444:
	nop
	b	.L409
.L445:
	nop
.L409:
	mov	r3, #0
	str	r3, [fp, #-880]
	ldr	r3, [fp, #-880]
	add	r3, r3, #8
	str	r3, [fp, #-876]
	ldr	r3, [fp, #-876]
	add	r3, r3, #16
	str	r3, [fp, #-872]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-868]
	ldr	r2, [fp, #-868]
	ldr	r3, [fp, #-872]
	add	r3, r2, r3
	str	r3, [fp, #-864]
	ldr	r3, [fp, #-864]
	ldr	r3, [r3]
	str	r3, [fp, #-860]
	mov	r1, #208
	ldr	r0, [fp, #-860]
	bl	kmalloc
	str	r0, [fp, #-1168]
	ldr	r3, [fp, #-1168]
	cmp	r3, #0
	bne	.L410
	mvn	r3, #11
	str	r3, [fp, #-684]
	mov	r2, #0
	ldr	r1, [fp, #-1160]
	ldr	r0, [fp, #-1176]
	bl	cmd_free
	ldr	r3, [fp, #-684]
	b	.L384
.L410:
	mov	r3, #0
	str	r3, [fp, #-856]
	ldr	r3, [fp, #-856]
	add	r3, r3, #16
	str	r3, [fp, #-852]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-848]
	ldr	r2, [fp, #-848]
	ldr	r3, [fp, #-852]
	add	r3, r2, r3
	str	r3, [fp, #-844]
	ldr	r3, [fp, #-844]
	ldr	r3, [r3]
	str	r3, [fp, #-840]
	mov	r3, #0
	str	r3, [fp, #-836]
	ldr	r3, [fp, #-836]
	add	r3, r3, #8
	str	r3, [fp, #-832]
	ldr	r3, [fp, #-832]
	add	r3, r3, #16
	str	r3, [fp, #-828]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-824]
	ldr	r2, [fp, #-824]
	ldr	r3, [fp, #-828]
	add	r3, r2, r3
	str	r3, [fp, #-820]
	ldr	r3, [fp, #-820]
	ldr	r3, [r3]
	str	r3, [fp, #-816]
	ldr	r3, [fp, #-816]
	str	r3, [fp, #-812]
	ldr	r2, [fp, #-812]
	ldr	r1, [fp, #-840]
	ldr	r0, [fp, #-1168]
	bl	copy_from_user
	str	r0, [fp, #-808]
	ldr	r3, [fp, #-808]
	cmp	r3, #0
	beq	.L411
	ldr	r3, [fp, #-1168]
	str	r3, [fp, #-688]
	ldr	r0, [fp, #-688]
	bl	kfree
	mov	r2, #0
	ldr	r1, [fp, #-1160]
	ldr	r0, [fp, #-1176]
	bl	cmd_free
	mvn	r3, #13
	b	.L384
.L411:
	mov	r3, #0
	str	r3, [fp, #-804]
	ldr	r3, [fp, #-804]
	add	r3, r3, #12
	str	r3, [fp, #-800]
	ldr	r3, [fp, #-800]
	add	r3, r3, #4
	str	r3, [fp, #-796]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-792]
	ldr	r2, [fp, #-792]
	ldr	r3, [fp, #-796]
	add	r3, r2, r3
	str	r3, [fp, #-788]
	mov	r3, #0
	str	r3, [fp, #-784]
	ldr	r3, [fp, #-784]
	add	r3, r3, #8
	str	r3, [fp, #-780]
	ldr	r3, [fp, #-780]
	add	r3, r3, #16
	str	r3, [fp, #-776]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-772]
	ldr	r2, [fp, #-772]
	ldr	r3, [fp, #-776]
	add	r3, r2, r3
	str	r3, [fp, #-768]
	ldr	r2, [fp, #-768]
	ldr	r3, [fp, #-788]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-764]
	ldr	r3, [fp, #-764]
	add	r3, r3, #4
	str	r3, [fp, #-760]
	ldr	r3, [fp, #-760]
	add	r3, r3, #12
	str	r3, [fp, #-756]
	ldr	r3, [fp, #-756]
	add	r3, r3, #4
	str	r3, [fp, #-752]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-748]
	ldr	r2, [fp, #-748]
	ldr	r3, [fp, #-752]
	add	r3, r2, r3
	str	r3, [fp, #-744]
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-740]
	ldr	r3, [fp, #-740]
	add	r3, r3, #48
	str	r3, [fp, #-736]
	ldr	r3, [fp, #-736]
	ldr	r3, [r3]
	str	r3, [fp, #-732]
	mov	r3, #0
	str	r3, [fp, #-728]
	ldr	r3, [fp, #-728]
	add	r3, r3, #12
	str	r3, [fp, #-724]
	ldr	r3, [fp, #-724]
	add	r3, r3, #4
	str	r3, [fp, #-720]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-716]
	ldr	r2, [fp, #-716]
	ldr	r3, [fp, #-720]
	add	r3, r2, r3
	str	r3, [fp, #-712]
	ldr	r3, [fp, #-712]
	ldr	r3, [r3]
	str	r3, [fp, #-708]
	ldr	r4, [fp, #-744]
	mov	r3, #0
	ldr	r2, [fp, #-708]
	ldr	r1, [fp, #-1168]
	ldr	r0, [fp, #-732]
	bl	pci_map_single
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #10
	str	r3, [fp, #-704]
	ldr	r3, [fp, #-704]
	add	r3, r3, #4
	str	r3, [fp, #-700]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-696]
	ldr	r2, [fp, #-696]
	ldr	r3, [fp, #-700]
	add	r3, r2, r3
	str	r3, [fp, #-692]
	ldr	r3, [fp, #-692]
	mov	r2, #1
	strb	r2, [r3]
	b	.L402
.L446:
	nop
.L399:
	mov	r3, #0
	str	r3, [fp, #-992]
	ldr	r3, [fp, #-992]
	add	r3, r3, #12
	str	r3, [fp, #-988]
	ldr	r3, [fp, #-988]
	add	r3, r3, #4
	str	r3, [fp, #-984]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-980]
	ldr	r2, [fp, #-980]
	ldr	r3, [fp, #-984]
	add	r3, r2, r3
	str	r3, [fp, #-976]
	ldr	r3, [fp, #-976]
	ldr	r2, .L458
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-972]
	ldr	r3, [fp, #-972]
	add	r3, r3, #4
	str	r3, [fp, #-968]
	ldr	r3, [fp, #-968]
	add	r3, r3, #12
	str	r3, [fp, #-964]
	ldr	r3, [fp, #-964]
	add	r3, r3, #4
	str	r3, [fp, #-960]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-956]
	ldr	r2, [fp, #-956]
	ldr	r3, [fp, #-960]
	add	r3, r2, r3
	str	r3, [fp, #-952]
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-948]
	ldr	r3, [fp, #-948]
	add	r3, r3, #48
	str	r3, [fp, #-944]
	ldr	r3, [fp, #-944]
	ldr	r3, [r3]
	str	r3, [fp, #-940]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-936]
	ldr	r3, [fp, #-936]
	add	r3, r3, #532
	str	r3, [fp, #-932]
	ldr	r3, [fp, #-932]
	str	r3, [fp, #-928]
	ldr	r3, [fp, #-928]
	str	r3, [fp, #-924]
	mov	r3, #0
	str	r3, [fp, #-920]
	ldr	r3, [fp, #-920]
	add	r3, r3, #12
	str	r3, [fp, #-916]
	ldr	r3, [fp, #-916]
	add	r3, r3, #4
	str	r3, [fp, #-912]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-908]
	ldr	r2, [fp, #-908]
	ldr	r3, [fp, #-912]
	add	r3, r2, r3
	str	r3, [fp, #-904]
	ldr	r3, [fp, #-904]
	ldr	r3, [r3]
	str	r3, [fp, #-900]
	ldr	r4, [fp, #-952]
	mov	r3, #0
	ldr	r2, [fp, #-900]
	ldr	r1, [fp, #-924]
	ldr	r0, [fp, #-940]
	bl	pci_map_single
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #10
	str	r3, [fp, #-896]
	ldr	r3, [fp, #-896]
	add	r3, r3, #4
	str	r3, [fp, #-892]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-888]
	ldr	r2, [fp, #-888]
	ldr	r3, [fp, #-892]
	add	r3, r2, r3
	str	r3, [fp, #-884]
	ldr	r3, [fp, #-884]
	mov	r2, #1
	strb	r2, [r3]
.L402:
	ldr	r3, [fp, #-1164]
	lsl	r3, r3, #3
	str	r3, [fp, #-296]
	ldr	r2, .L458+4
	ldr	r3, [fp, #-296]
	add	r3, r3, r2
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	ldr	r3, [r3]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	add	r3, r3, #592
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	str	r3, [fp, #-276]
	ldr	r1, [fp, #-272]
	ldr	r0, [fp, #-276]
	bl	spin_lock_irqsave
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	add	r3, r3, #544
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	str	r3, [fp, #-260]
	ldr	r1, [fp, #-1160]
	ldr	r0, [fp, #-260]
	bl	addQ
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-256]
	ldr	r3, [fp, #-256]
	add	r3, r3, #600
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	add	r3, r3, #600
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	ldr	r3, [r3]
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-252]
	ldr	r2, [fp, #-240]
	add	r2, r2, #1
	str	r2, [r3]
	ldr	r0, [fp, #-1176]
	bl	start_io
	ldr	r3, [fp, #-1164]
	lsl	r3, r3, #3
	str	r3, [fp, #-236]
	ldr	r2, .L458+4
	ldr	r3, [fp, #-236]
	add	r3, r3, r2
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	add	r3, r3, #592
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-216]
	ldr	r1, [fp, #-272]
	ldr	r0, [fp, #-216]
	bl	spin_unlock_irqrestore
.L412:
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	add	r3, r3, #320
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	cmp	r3, #2
	beq	.L447
	bl	schedule
	b	.L412
.L447:
	nop
.L414:
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	add	r3, r3, #48
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	ldr	r3, [r3]
	str	r3, [fp, #-192]
	mov	r3, #0
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	add	r3, r3, #4
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	add	r3, r3, #4
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-172]
	ldr	r2, [fp, #-172]
	ldr	r3, [fp, #-176]
	add	r3, r2, r3
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	str	r3, [fp, #-164]
	mov	r3, #0
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #12
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	add	r3, r3, #4
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-148]
	ldr	r2, [fp, #-148]
	ldr	r3, [fp, #-152]
	add	r3, r2, r3
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	str	r3, [fp, #-140]
	mov	r3, #0
	ldr	r2, [fp, #-140]
	ldr	r1, [fp, #-164]
	ldr	r0, [fp, #-192]
	bl	pci_unmap_single
	ldr	r3, [fp, #-1184]
	ldrb	r3, [r3]
	strb	r3, [fp, #-1169]
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #145
	beq	.L448
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #32
	beq	.L449
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #65
	beq	.L450
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #168
	beq	.L451
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #246
	beq	.L452
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #48
	beq	.L453
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #49
	beq	.L454
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #210
	beq	.L455
	ldrb	r3, [fp, #-1169]	@ zero_extendqisi2
	cmp	r3, #247
	bne	.L456
	b	.L433
.L448:
	nop
.L416:
	ldr	r3, [fp, #-1176]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	add	r3, r3, #48
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-128]
	mov	r3, #4
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	add	r3, r3, #4
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-116]
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-120]
	add	r3, r2, r3
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	ldr	r3, [r3]
	str	r3, [fp, #-108]
	mov	r3, #1568
	str	r3, [fp, #-104]
	mov	r3, #0
	ldr	r2, [fp, #-104]
	ldr	r1, [fp, #-108]
	ldr	r0, [fp, #-128]
	bl	pci_unmap_single
	b	.L430
.L418:
.L428:
.L429:
.L449:
	nop
	b	.L430
.L450:
	nop
	b	.L430
.L451:
	nop
	b	.L430
.L452:
	nop
.L430:
	mov	r3, #0
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	add	r3, r3, #16
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-92]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-96]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-1168]
	str	r3, [fp, #-80]
	mov	r3, #0
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #8
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #16
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-52]
	ldr	r1, [fp, #-80]
	ldr	r0, [fp, #-84]
	bl	copy_to_user
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	beq	.L457
	ldr	r3, [fp, #-1168]
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-44]
	bl	kfree
	mvn	r3, #13
	b	.L384
.L423:
.L431:
.L432:
.L453:
	nop
	b	.L433
.L454:
	nop
	b	.L433
.L455:
	nop
	b	.L433
.L457:
	nop
.L433:
	ldr	r3, [fp, #-1168]
	str	r3, [fp, #-40]
	ldr	r0, [fp, #-40]
	bl	kfree
	b	.L434
.L427:
.L456:
	nop
.L434:
	ldr	r3, [fp, #-1184]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	mov	r3, #3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-1160]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-32]
	ldrb	r2, [r2]	@ zero_extendqisi2
	strb	r2, [r3]
	mov	r2, #0
	ldr	r1, [fp, #-1160]
	ldr	r0, [fp, #-1176]
	bl	cmd_free
	mov	r3, #0
.L384:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L459:
	.align	2
.L458:
	.word	1036
	.word	hba
	.size	ida_ctlr_ioctl, .-ida_ctlr_ioctl
	.section	.rodata
	.align	2
.LC45:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cmd_alloc
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_alloc, %function
cmd_alloc:
	@ args = 0, pretend = 0, frame = 200
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #200
	str	r0, [fp, #-200]
	str	r1, [fp, #-204]
	ldr	r3, .L472
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-204]
	cmp	r3, #0
	bne	.L470
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	add	r3, r3, #48
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	str	r3, [fp, #-56]
	mov	r3, #328
	str	r3, [fp, #-52]
	sub	r3, fp, #192
	mov	r2, r3
	ldr	r1, [fp, #-52]
	ldr	r0, [fp, #-56]
	bl	pci_alloc_consistent
	str	r0, [fp, #-48]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-188]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-188]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bne	.L462
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	b	.L467
.L470:
	nop
.L461:
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	add	r3, r3, #576
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	ldr	r3, [r3]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	str	r3, [fp, #-172]
	mov	r1, #128
	ldr	r0, [fp, #-172]
	bl	find_first_zero_bit
	str	r0, [fp, #-168]
	ldr	r3, [fp, #-168]
	cmp	r3, #128
	bne	.L464
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	b	.L467
.L464:
	ldr	r3, [fp, #-168]
	and	r3, r3, #31
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-168]
	add	r2, r3, #31
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #5
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	add	r3, r3, #576
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-160]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-148]
	add	r3, r2, r3
	str	r3, [fp, #-144]
	ldr	r1, [fp, #-144]
	ldr	r0, [fp, #-164]
	bl	test_and_set_bit
	str	r0, [fp, #-140]
	ldr	r3, [fp, #-140]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	cmp	r3, #0
	beq	.L471
	b	.L470
.L471:
	nop
.L466:
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	add	r3, r3, #560
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	ldr	r3, [r3]
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-168]
	mov	r2, #308
	mul	r3, r2, r3
	ldr	r2, [fp, #-124]
	add	r3, r2, r3
	str	r3, [fp, #-188]
	sub	r3, fp, #192
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-168]
	str	r3, [fp, #-116]
	ldr	r2, [fp, #-116]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	add	r3, r3, #568
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-120]
	ldr	r2, [fp, #-92]
	str	r2, [r3]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	add	r3, r3, #612
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-200]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	add	r3, r3, #612
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-72]
	add	r2, r2, #1
	str	r2, [r3]
.L462:
	ldr	r3, [fp, #-188]
	str	r3, [fp, #-28]
	mov	r3, #328
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-24]
	mov	r1, #0
	ldr	r0, [fp, #-28]
	bl	memset
	ldr	r3, [fp, #-188]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #284
	str	r3, [fp, #-16]
	sub	r3, fp, #192
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-188]
.L467:
	ldr	r2, .L472
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L468
	bl	__stack_chk_fail
.L468:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L473:
	.align	2
.L472:
	.word	.LC45
	.size	cmd_alloc, .-cmd_alloc
	.align	2
	.global	cmd_free
	.syntax unified
	.arm
	.fpu softvfp
	.type	cmd_free, %function
cmd_free:
	@ 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, #-112]
	cmp	r3, #0
	bne	.L475
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #48
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	mov	r3, #328
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-108]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #284
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-24]
	ldr	r0, [fp, #-28]
	bl	pci_free_consistent
	b	.L474
.L475:
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	add	r3, r3, #560
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	str	r3, [fp, #-92]
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-92]
	sub	r3, r2, r3
	asr	r3, r3, #2
	ldr	r2, .L478
	mul	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	and	r3, r3, #31
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-88]
	add	r2, r3, #31
	cmp	r3, #0
	movlt	r3, r2
	movge	r3, r3
	asr	r3, r3, #5
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #576
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-80]
	lsl	r3, r3, #2
	ldr	r2, [fp, #-68]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	str	r3, [fp, #-60]
	ldr	r1, [fp, #-60]
	ldr	r0, [fp, #-84]
	bl	clear_bit
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	add	r3, r3, #616
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #616
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-52]
	ldr	r2, [fp, #-40]
	add	r2, r2, #1
	str	r2, [r3]
	nop
.L474:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L479:
	.align	2
.L478:
	.word	1059797125
	.size	cmd_free, .-cmd_free
	.section	.rodata
	.align	2
.LC46:
	.ascii	"<4>cpqarray ida%d: idaSendPciCmd FIFO full, waiting"
	.ascii	"!\012\000"
	.align	2
.LC47:
	.ascii	"<4>cpqarray ida%d: idaSendPciCmd Invalid command li"
	.ascii	"st address returned! (%08lx)\012\000"
	.align	2
.LC48:
	.ascii	"<4>cpqarray ida%d: idaSendPciCmd Timeout out, No co"
	.ascii	"mmand list address returned!\012\000"
	.align	2
.LC49:
	.ascii	"<4>cpqarray ida%d: idaSendPciCmd, error: Controller"
	.ascii	" failed at init time cmd: 0x%x, return code = 0x%x\012"
	.ascii	"\000"
	.text
	.align	2
	.global	sendcmd
	.syntax unified
	.arm
	.fpu softvfp
	.type	sendcmd, %function
sendcmd:
	@ args = 12, pretend = 0, frame = 544
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #544
	str	r1, [fp, #-540]
	str	r2, [fp, #-544]
	str	r3, [fp, #-548]
	mov	r3, r0
	strb	r3, [fp, #-533]
	ldr	r3, [fp, #-540]
	lsl	r3, r3, #3
	str	r3, [fp, #-524]
	ldr	r2, .L496
	ldr	r3, [fp, #-524]
	add	r3, r3, r2
	str	r3, [fp, #-520]
	ldr	r3, [fp, #-520]
	ldr	r3, [r3]
	str	r3, [fp, #-516]
	mov	r1, #1
	ldr	r0, [fp, #-516]
	bl	cmd_alloc
	str	r0, [fp, #-512]
	ldr	r3, [fp, #-512]
	cmp	r3, #0
	bne	.L481
	mov	r3, #1
	b	.L482
.L481:
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-508]
	add	r3, r3, #288
	str	r3, [fp, #-504]
	ldr	r3, [fp, #-504]
	ldr	r2, [fp, #-540]
	str	r2, [r3]
	ldr	r3, [fp, #12]
	and	r2, r3, #255
	ldr	r3, [fp, #-512]
	strb	r2, [r3]
	mov	r3, #1
	str	r3, [fp, #-500]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-496]
	ldr	r2, [fp, #-496]
	ldr	r3, [fp, #-500]
	add	r3, r2, r3
	str	r3, [fp, #-492]
	ldr	r3, [fp, #-492]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #2
	str	r3, [fp, #-488]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-484]
	ldr	r2, [fp, #-484]
	ldr	r3, [fp, #-488]
	add	r3, r2, r3
	str	r3, [fp, #-480]
	mov	r3, #68
	str	r3, [fp, #-476]
	ldr	r3, [fp, #-480]
	ldr	r2, [fp, #-476]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-472]
	ldr	r3, [fp, #-472]
	add	r3, r3, #276
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-464]
	add	r3, r3, #276
	str	r3, [fp, #-460]
	ldr	r3, [fp, #-460]
	ldr	r3, [r3]
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-456]
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-452]
	add	r3, r3, #272
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-468]
	ldr	r2, [fp, #-448]
	str	r2, [r3]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-444]
	ldr	r3, [fp, #-444]
	add	r3, r3, #4
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-440]
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #3
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-436]
	add	r3, r3, #4
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-428]
	ldr	r2, [fp, #-428]
	ldr	r3, [fp, #-432]
	add	r3, r2, r3
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-424]
	mov	r2, #0
	strb	r2, [r3]
	mov	r3, #272
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-416]
	ldr	r2, [fp, #-416]
	ldr	r3, [fp, #-420]
	add	r3, r2, r3
	str	r3, [fp, #-412]
	ldr	r3, [fp, #-412]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #10
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-408]
	add	r3, r3, #4
	str	r3, [fp, #-404]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-400]
	ldr	r2, [fp, #-400]
	ldr	r3, [fp, #-404]
	add	r3, r2, r3
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-396]
	mov	r2, #1
	strb	r2, [r3]
	mov	r3, #11
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	add	r3, r3, #4
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-384]
	ldr	r2, [fp, #-384]
	ldr	r3, [fp, #-388]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-380]
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, [fp, #-548]
	cmp	r3, #0
	bne	.L483
	mov	r3, #0
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	add	r3, r3, #12
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	add	r3, r3, #4
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-344]
	ldr	r2, [fp, #-344]
	ldr	r3, [fp, #-348]
	add	r3, r2, r3
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	mov	r2, #512
	str	r2, [r3]
	b	.L484
.L483:
	mov	r3, #0
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	add	r3, r3, #12
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-372]
	add	r3, r3, #4
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-364]
	ldr	r2, [fp, #-364]
	ldr	r3, [fp, #-368]
	add	r3, r2, r3
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-360]
	ldr	r2, [fp, #-548]
	str	r2, [r3]
.L484:
	mov	r3, #4
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	add	r3, r3, #4
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-328]
	ldr	r2, [fp, #-328]
	ldr	r3, [fp, #-332]
	add	r3, r2, r3
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	ldr	r2, [fp, #4]
	str	r2, [r3]
	mov	r3, #8
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-320]
	add	r3, r3, #4
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-312]
	ldr	r2, [fp, #-312]
	ldr	r3, [fp, #-316]
	add	r3, r2, r3
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	ldr	r2, [fp, #8]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	strh	r2, [r3]	@ movhi
	mov	r3, #2
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	add	r3, r3, #4
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-296]
	ldr	r2, [fp, #-296]
	ldr	r3, [fp, #-300]
	add	r3, r2, r3
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	ldrb	r2, [fp, #-533]
	strb	r2, [r3]
	ldr	r3, [fp, #-516]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	add	r3, r3, #48
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	ldr	r3, [r3]
	str	r3, [fp, #-280]
	mov	r3, #0
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-276]
	add	r3, r3, #12
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	add	r3, r3, #4
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-264]
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-268]
	add	r3, r2, r3
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-260]
	ldr	r3, [r3]
	str	r3, [fp, #-256]
	mov	r3, #0
	ldr	r2, [fp, #-256]
	ldr	r1, [fp, #-544]
	ldr	r0, [fp, #-280]
	bl	pci_map_single
	str	r0, [fp, #-252]
	mov	r3, #0
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	add	r3, r3, #4
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	add	r3, r3, #12
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	add	r3, r3, #4
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-232]
	ldr	r2, [fp, #-232]
	ldr	r3, [fp, #-236]
	add	r3, r2, r3
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	ldr	r2, [fp, #-252]
	str	r2, [r3]
	mov	r3, #512
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-516]
	str	r3, [fp, #-220]
	ldr	r2, [fp, #-220]
	ldr	r3, [fp, #-224]
	add	r3, r2, r3
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	mov	r1, #0
	ldr	r0, [fp, #-516]
	blx	r3
	ldr	r3, .L496+4
	str	r3, [fp, #-528]
.L485:
	ldr	r3, [fp, #-528]
	cmp	r3, #0
	beq	.L494
	mov	r3, #520
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-516]
	str	r3, [fp, #-204]
	ldr	r2, [fp, #-204]
	ldr	r3, [fp, #-208]
	add	r3, r2, r3
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	ldr	r3, [r3]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	ldr	r0, [fp, #-516]
	blx	r3
	str	r0, [fp, #-192]
	ldr	r3, [fp, #-192]
	cmp	r3, #0
	bne	.L495
	mov	r0, #10
	bl	udelay
.L489:
	ldr	r1, [fp, #-540]
	ldr	r0, .L496+8
	bl	printk
	nop
.L490:
	ldr	r3, [fp, #-528]
	sub	r3, r3, #1
	str	r3, [fp, #-528]
	b	.L485
.L494:
	nop
	b	.L487
.L495:
	nop
.L487:
	ldr	r3, [fp, #-516]
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	add	r3, r3, #504
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	ldr	r1, [fp, #-512]
	ldr	r0, [fp, #-516]
	blx	r3
	ldr	r0, [fp, #-540]
	bl	pollcomplete
	str	r0, [fp, #-176]
	ldr	r3, [fp, #-516]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	add	r3, r3, #48
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	str	r3, [fp, #-164]
	mov	r3, #0
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #4
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	add	r3, r3, #12
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-144]
	ldr	r2, [fp, #-144]
	ldr	r3, [fp, #-148]
	add	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3]
	str	r3, [fp, #-136]
	mov	r3, #0
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	add	r3, r3, #12
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	add	r3, r3, #4
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-120]
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-124]
	add	r3, r2, r3
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	ldr	r3, [r3]
	str	r3, [fp, #-112]
	mov	r3, #0
	ldr	r2, [fp, #-112]
	ldr	r1, [fp, #-136]
	ldr	r0, [fp, #-164]
	bl	pci_unmap_single
	ldr	r3, [fp, #-176]
	cmp	r3, #1
	beq	.L491
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	add	r3, r3, #284
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-176]
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-100]
	cmp	r2, r3
	beq	.L492
	ldr	r3, [fp, #-176]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-540]
	ldr	r0, .L496+12
	bl	printk
	mov	r2, #1
	ldr	r1, [fp, #-512]
	ldr	r0, [fp, #-516]
	bl	cmd_free
	mov	r3, #1
	b	.L482
.L491:
	ldr	r1, [fp, #-540]
	ldr	r0, .L496+16
	bl	printk
	mov	r2, #1
	ldr	r1, [fp, #-512]
	ldr	r0, [fp, #-516]
	bl	cmd_free
	mov	r3, #1
	b	.L482
.L492:
	mov	r3, #3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	add	r3, r3, #4
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldrb	r3, [r3]
	strb	r3, [fp, #-532]
	ldrb	r3, [fp, #-532]	@ zero_extendqisi2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	and	r3, r3, #254
	cmp	r3, #0
	beq	.L493
	mov	r3, #3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-64]
	ldr	r2, [fp, #-64]
	ldr	r3, [fp, #-68]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	ldrb	r3, [r3]
	strb	r3, [fp, #-531]
	ldrb	r3, [fp, #-531]	@ zero_extendqisi2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	and	r3, r3, #64
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	cmp	r3, #0
	bne	.L493
	mov	r3, #2
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]
	strb	r3, [fp, #-530]
	ldrb	r3, [fp, #-530]	@ zero_extendqisi2
	str	r3, [fp, #-32]
	mov	r3, #3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-512]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldrb	r3, [r3]
	strb	r3, [fp, #-529]
	ldrb	r3, [fp, #-529]	@ zero_extendqisi2
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	ldr	r1, [fp, #-540]
	ldr	r0, .L496+20
	bl	printk
	mov	r2, #1
	ldr	r1, [fp, #-512]
	ldr	r0, [fp, #-516]
	bl	cmd_free
	mov	r3, #1
	b	.L482
.L493:
	mov	r2, #1
	ldr	r1, [fp, #-512]
	ldr	r0, [fp, #-516]
	bl	cmd_free
	mov	r3, #0
.L482:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L497:
	.align	2
.L496:
	.word	hba
	.word	200000
	.word	.LC46
	.word	.LC47
	.word	.LC48
	.word	.LC49
	.size	sendcmd, .-sendcmd
	.section	.rodata
	.align	2
.LC50:
	.ascii	"<4>cpqarray: Device busy for volume revalidation (u"
	.ascii	"sage=%d)\012\000"
	.text
	.align	2
	.global	revalidate_allvol
	.syntax unified
	.arm
	.fpu softvfp
	.type	revalidate_allvol, %function
revalidate_allvol:
	@ args = 0, pretend = 0, frame = 392
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #392
	str	r0, [fp, #-392]
	ldr	r3, [fp, #-392]
	ldr	r3, [r3]
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	lsl	r3, r3, #3
	str	r3, [fp, #-372]
	ldr	r2, .L516
	ldr	r3, [fp, #-372]
	add	r3, r3, r2
	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, #592
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-356]
	str	r3, [fp, #-352]
	ldr	r1, [fp, #-348]
	ldr	r0, [fp, #-352]
	bl	spin_lock_irqsave
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-344]
	add	r3, r3, #108
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	ldr	r3, [r3]
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	cmp	r3, #1
	ble	.L499
	ldr	r3, [fp, #-376]
	lsl	r3, r3, #3
	str	r3, [fp, #-40]
	ldr	r2, .L516
	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, #592
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r1, [fp, #-348]
	ldr	r0, [fp, #-20]
	bl	spin_unlock_irqrestore
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #108
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, .L516+4
	bl	printk
	mvn	r3, #15
	b	.L500
.L499:
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	add	r3, r3, #108
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	add	r3, r3, #108
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-320]
	ldr	r3, [r3]
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-328]
	ldr	r2, [fp, #-316]
	add	r2, r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-376]
	lsl	r3, r3, #3
	str	r3, [fp, #-312]
	ldr	r2, .L516
	ldr	r3, [fp, #-312]
	add	r3, r3, r2
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	ldr	r3, [r3]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-300]
	add	r3, r3, #592
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	str	r3, [fp, #-292]
	ldr	r1, [fp, #-348]
	ldr	r0, [fp, #-292]
	bl	spin_unlock_irqrestore
	mov	r3, #0
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-376]
	lsl	r3, r3, #7
	str	r3, [fp, #-284]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-288]
	add	r3, r2, r3
	str	r3, [fp, #-280]
	ldr	r2, .L516+8
	ldr	r3, [fp, #-280]
	add	r3, r3, r2
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-276]
	ldr	r3, [r3]
	str	r3, [fp, #-272]
	mov	r3, #0
	str	r3, [fp, #-268]
	ldr	r1, [fp, #-268]
	ldr	r0, [fp, #-272]
	bl	set_capacity
	mov	r3, #1
	str	r3, [fp, #-380]
.L501:
	ldr	r3, [fp, #-380]
	cmp	r3, #15
	bgt	.L512
	ldr	r3, [fp, #-380]
	lsl	r3, r3, #3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-376]
	lsl	r3, r3, #7
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r2, .L516+8
	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, #80
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L504
	ldr	r0, [fp, #-56]
	bl	del_gendisk
.L504:
	ldr	r3, [fp, #-380]
	add	r3, r3, #1
	str	r3, [fp, #-380]
	b	.L501
.L512:
	nop
.L503:
	mov	r3, #0
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	add	r3, r3, #112
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-256]
	ldr	r2, [fp, #-256]
	ldr	r3, [fp, #-260]
	add	r3, r2, r3
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-244]
	mov	r3, #384
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-236]
	ldr	r2, [fp, #-236]
	mov	r1, #0
	ldr	r0, [fp, #-244]
	bl	memset
	mov	r3, #512
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-228]
	ldr	r2, [fp, #-228]
	ldr	r3, [fp, #-232]
	add	r3, r2, r3
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	mov	r1, #0
	ldr	r0, [fp, #-392]
	blx	r3
	ldr	r0, [fp, #-376]
	bl	getgeometry
	mov	r3, #512
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-212]
	ldr	r2, [fp, #-212]
	ldr	r3, [fp, #-216]
	add	r3, r2, r3
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	mov	r1, #1
	ldr	r0, [fp, #-392]
	blx	r3
	mov	r3, #0
	str	r3, [fp, #-380]
.L505:
	ldr	r3, [fp, #-380]
	cmp	r3, #15
	bgt	.L513
	ldr	r3, [fp, #-380]
	lsl	r3, r3, #3
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-376]
	lsl	r3, r3, #7
	str	r3, [fp, #-176]
	ldr	r2, [fp, #-176]
	ldr	r3, [fp, #-180]
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r2, .L516+8
	ldr	r3, [fp, #-172]
	add	r3, r3, r2
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	str	r3, [fp, #-164]
	ldr	r2, [fp, #-380]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #112
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-152]
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-380]
	cmp	r3, #0
	beq	.L508
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	add	r3, r3, #4
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	beq	.L514
.L508:
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	add	r3, r3, #584
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	ldr	r3, [r3]
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-144]
	ldr	r3, [r3]
	str	r3, [fp, #-116]
	sub	r3, fp, #4
	sub	r3, r3, #376
	sub	r3, r3, #2
	ldr	r2, [fp, #-116]
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #4
	sub	r3, r3, #376
	sub	r3, r3, #2
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-120]
	bl	blk_queue_hardsect_size
	ldr	r3, [fp, #-144]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	add	r3, r3, #4
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	str	r3, [fp, #-100]
	ldr	r1, [fp, #-100]
	ldr	r0, [fp, #-164]
	bl	set_capacity
	ldr	r3, [fp, #-164]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	add	r3, r3, #56
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	add	r3, r3, #584
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-92]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-164]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	add	r3, r3, #64
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	ldr	r2, [fp, #-144]
	str	r2, [r3]
	ldr	r3, [fp, #-380]
	cmp	r3, #0
	beq	.L515
	ldr	r0, [fp, #-164]
	bl	add_disk
	b	.L509
.L514:
	nop
	b	.L509
.L515:
	nop
.L509:
	ldr	r3, [fp, #-380]
	add	r3, r3, #1
	str	r3, [fp, #-380]
	b	.L505
.L513:
	nop
.L507:
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	add	r3, r3, #108
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	add	r3, r3, #108
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	ldr	r3, [r3]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-196]
	ldr	r2, [fp, #-184]
	sub	r2, r2, #1
	str	r2, [r3]
	mov	r3, #0
.L500:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L517:
	.align	2
.L516:
	.word	hba
	.word	.LC50
	.word	ida_gendisk
	.size	revalidate_allvol, .-revalidate_allvol
	.align	2
	.global	ida_revalidate
	.syntax unified
	.arm
	.fpu softvfp
	.type	ida_revalidate, %function
ida_revalidate:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r3, r3, #64
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r1, [fp, #-8]
	ldr	r0, [fp, #-40]
	bl	set_capacity
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	ida_revalidate, .-ida_revalidate
	.align	2
	.global	pollcomplete
	.syntax unified
	.arm
	.fpu softvfp
	.type	pollcomplete, %function
pollcomplete:
	@ args = 0, pretend = 0, frame = 64
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #64
	str	r0, [fp, #-64]
	ldr	r3, .L530
	str	r3, [fp, #-56]
.L521:
	ldr	r3, [fp, #-56]
	cmp	r3, #0
	ble	.L529
	mov	r3, #536
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	str	r3, [fp, #-48]
	ldr	r2, .L530+4
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-52]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-64]
	lsl	r3, r3, #3
	str	r3, [fp, #-24]
	ldr	r2, .L530+4
	ldr	r3, [fp, #-24]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-28]
	ldr	r0, [fp, #-16]
	blx	r3
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L524
	mov	r0, #10
	bl	udelay
	b	.L528
.L524:
	ldr	r3, [fp, #-8]
	b	.L526
.L528:
	ldr	r3, [fp, #-56]
	sub	r3, r3, #1
	str	r3, [fp, #-56]
	b	.L521
.L529:
	nop
.L523:
	mov	r3, #1
.L526:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L531:
	.align	2
.L530:
	.word	200000
	.word	hba
	.size	pollcomplete, .-pollcomplete
	.section	.rodata
	.align	2
.LC51:
	.ascii	"<7>cpqarray: Starting firmware's background process"
	.ascii	"ing\012\000"
	.align	2
.LC52:
	.ascii	"<4>cpqarray: Out of memory. Unable to start backgro"
	.ascii	"und processing.\012\000"
	.align	2
.LC53:
	.ascii	"<4>cpqarray: Unable to start background processing\012"
	.ascii	"\000"
	.text
	.align	2
	.global	start_fwbk
	.syntax unified
	.arm
	.fpu softvfp
	.type	start_fwbk, %function
start_fwbk:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #120
	str	r0, [fp, #-104]
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #3
	str	r3, [fp, #-92]
	ldr	r2, .L538
	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, #56
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	ldr	r3, [r3]
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	ldr	r2, .L538+4
	cmp	r3, r2
	beq	.L533
	ldr	r3, [fp, #-104]
	lsl	r3, r3, #3
	str	r3, [fp, #-68]
	ldr	r2, .L538
	ldr	r3, [fp, #-68]
	add	r3, r3, r2
	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, #56
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r2, .L538+8
	cmp	r3, r2
	bne	.L537
.L533:
	ldr	r0, .L538+12
	bl	printk
	mov	r3, #524
	str	r3, [fp, #-44]
	mov	r1, #208
	ldr	r0, [fp, #-44]
	bl	kmalloc
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-28]
	cmp	r2, r3
	bne	.L535
	ldr	r0, .L538+16
	bl	printk
	b	.L532
.L535:
	mvn	r3, #102
	strb	r3, [fp, #-93]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldrb	r0, [fp, #-93]	@ zero_extendqisi2
	mov	r3, #0
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-104]
	bl	sendcmd
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L536
	ldr	r0, .L538+20
	bl	printk
.L536:
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	kfree
	b	.L532
.L537:
	nop
.L532:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L539:
	.align	2
.L538:
	.word	hba
	.word	1077939729
	.word	1078464017
	.word	.LC51
	.word	.LC52
	.word	.LC53
	.size	start_fwbk, .-start_fwbk
	.section	.rodata
	.align	2
.LC54:
	.ascii	"<3>cpqarray:  out of memory.\012\000"
	.align	2
.LC55:
	.ascii	"<3>cpqarray: error sending ID controller\012\000"
	.align	2
.LC56:
	.ascii	" (%s)\012\000"
	.align	2
.LC57:
	.ascii	"<4>cpqarray ida%d:  This driver supports 16 logical"
	.ascii	" drives per controller.\012.   Additional drives wi"
	.ascii	"ll not be detected\012\000"
	.align	2
.LC58:
	.ascii	"<4>cpqarray ida%d: idaGetGeometry - Controller fail"
	.ascii	"ed to report status of logical drive %d\012Access t"
	.ascii	"o this controller has been disabled\012\000"
	.align	2
.LC59:
	.ascii	"<6>cpqarray ida/c%dd%d: blksz=%d nr_blks=%d\012\000"
	.align	2
.LC60:
	.ascii	"<3>cpqarray: error sending sense config\012\000"
	.text
	.align	2
	.global	getgeometry
	.syntax unified
	.arm
	.fpu softvfp
	.type	getgeometry, %function
getgeometry:
	@ args = 0, pretend = 0, frame = 712
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #728
	str	r0, [fp, #-712]
	ldr	r3, [fp, #-712]
	lsl	r3, r3, #3
	str	r3, [fp, #-672]
	ldr	r2, .L563
	ldr	r3, [fp, #-672]
	add	r3, r3, r2
	str	r3, [fp, #-668]
	ldr	r3, [fp, #-668]
	ldr	r3, [r3]
	str	r3, [fp, #-664]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-660]
	ldr	r3, [fp, #-660]
	add	r3, r3, #12
	str	r3, [fp, #-656]
	ldr	r3, [fp, #-656]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #32
	str	r3, [fp, #-652]
	mov	r1, #208
	ldr	r0, [fp, #-652]
	bl	kmalloc
	str	r0, [fp, #-648]
	ldr	r3, [fp, #-648]
	str	r3, [fp, #-644]
	mov	r3, #0
	str	r3, [fp, #-640]
	ldr	r3, [fp, #-640]
	str	r3, [fp, #-636]
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-632]
	ldr	r2, [fp, #-632]
	ldr	r3, [fp, #-636]
	cmp	r2, r3
	bne	.L541
	ldr	r0, .L563+4
	bl	printk
	b	.L540
.L541:
	mov	r3, #524
	str	r3, [fp, #-628]
	mov	r1, #208
	ldr	r0, [fp, #-628]
	bl	kmalloc
	str	r0, [fp, #-624]
	ldr	r3, [fp, #-624]
	str	r3, [fp, #-620]
	mov	r3, #0
	str	r3, [fp, #-616]
	ldr	r3, [fp, #-616]
	str	r3, [fp, #-612]
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-608]
	ldr	r2, [fp, #-608]
	ldr	r3, [fp, #-612]
	cmp	r2, r3
	bne	.L543
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	kfree
	ldr	r0, .L563+4
	bl	printk
	b	.L540
.L543:
	ldr	r3, .L563+8
	str	r3, [fp, #-604]
	mov	r1, #208
	ldr	r0, [fp, #-604]
	bl	kmalloc
	str	r0, [fp, #-600]
	ldr	r3, [fp, #-600]
	str	r3, [fp, #-596]
	mov	r3, #0
	str	r3, [fp, #-592]
	ldr	r3, [fp, #-592]
	str	r3, [fp, #-588]
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-584]
	ldr	r2, [fp, #-584]
	ldr	r3, [fp, #-588]
	cmp	r2, r3
	bne	.L544
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-16]
	ldr	r0, [fp, #-16]
	bl	kfree
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	kfree
	ldr	r0, .L563+4
	bl	printk
	b	.L540
.L544:
	mov	r3, #484
	str	r3, [fp, #-580]
	mov	r1, #208
	ldr	r0, [fp, #-580]
	bl	kmalloc
	str	r0, [fp, #-576]
	ldr	r3, [fp, #-576]
	str	r3, [fp, #-572]
	mov	r3, #0
	str	r3, [fp, #-568]
	ldr	r3, [fp, #-568]
	str	r3, [fp, #-564]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-560]
	ldr	r2, [fp, #-560]
	ldr	r3, [fp, #-564]
	cmp	r2, r3
	bne	.L545
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-28]
	ldr	r0, [fp, #-28]
	bl	kfree
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-24]
	ldr	r0, [fp, #-24]
	bl	kfree
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-20]
	ldr	r0, [fp, #-20]
	bl	kfree
	ldr	r0, .L563+4
	bl	printk
	b	.L540
.L545:
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-556]
	mov	r3, #32
	str	r3, [fp, #-552]
	ldr	r2, [fp, #-552]
	mov	r1, #0
	ldr	r0, [fp, #-556]
	bl	memset
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-548]
	mov	r3, #524
	str	r3, [fp, #-544]
	ldr	r2, [fp, #-544]
	mov	r1, #0
	ldr	r0, [fp, #-548]
	bl	memset
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-540]
	ldr	r3, .L563+8
	str	r3, [fp, #-536]
	ldr	r2, [fp, #-536]
	mov	r1, #0
	ldr	r0, [fp, #-540]
	bl	memset
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-532]
	mov	r3, #484
	str	r3, [fp, #-528]
	ldr	r2, [fp, #-528]
	mov	r1, #0
	ldr	r0, [fp, #-532]
	bl	memset
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-524]
	add	r3, r3, #40
	str	r3, [fp, #-520]
	ldr	r3, [fp, #-520]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-516]
	ldr	r3, [fp, #-516]
	add	r3, r3, #12
	str	r3, [fp, #-512]
	ldr	r3, [fp, #-512]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-508]
	add	r3, r3, #16
	str	r3, [fp, #-504]
	ldr	r3, [fp, #-504]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-500]
	ldr	r3, [fp, #-500]
	add	r3, r3, #20
	str	r3, [fp, #-496]
	ldr	r3, [fp, #-496]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-492]
	ldr	r3, [fp, #-492]
	add	r3, r3, #24
	str	r3, [fp, #-488]
	ldr	r3, [fp, #-488]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #17
	strb	r3, [fp, #-701]
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-484]
	mov	r3, #0
	str	r3, [fp, #-480]
	ldrb	r0, [fp, #-701]	@ zero_extendqisi2
	mov	r3, #0
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-480]
	ldr	r2, [fp, #-484]
	ldr	r1, [fp, #-712]
	bl	sendcmd
	str	r0, [fp, #-476]
	ldr	r3, [fp, #-476]
	cmp	r3, #1
	bne	.L546
	ldr	r0, .L563+12
	bl	printk
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-44]
	bl	kfree
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-40]
	ldr	r0, [fp, #-40]
	bl	kfree
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-36]
	ldr	r0, [fp, #-36]
	bl	kfree
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-32]
	ldr	r0, [fp, #-32]
	bl	kfree
	b	.L540
.L546:
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-472]
	ldr	r3, [fp, #-472]
	add	r3, r3, #36
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-620]
	ldrb	r3, [r3]
	strb	r3, [fp, #-700]
	ldr	r3, [fp, #-468]
	ldrb	r2, [fp, #-700]	@ zero_extendqisi2
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-676]
.L547:
	ldr	r3, [fp, #-676]
	cmp	r3, #3
	bgt	.L560
	ldr	r3, [fp, #-676]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #28
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-676]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #8
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldrb	r3, [r3]
	strb	r3, [fp, #-691]
	ldr	r3, [fp, #-64]
	ldrb	r2, [fp, #-691]
	strb	r2, [r3]
	ldr	r3, [fp, #-676]
	add	r3, r3, #1
	str	r3, [fp, #-676]
	b	.L547
.L560:
	nop
.L549:
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-464]
	add	r3, r3, #32
	str	r3, [fp, #-460]
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-456]
	add	r3, r3, #4
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-452]
	ldr	r3, [r3]
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-460]
	ldr	r2, [fp, #-448]
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-444]
	ldr	r3, [fp, #-444]
	add	r3, r3, #64
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-440]
	ldr	r3, [r3]
	str	r3, [fp, #-436]
	ldr	r1, [fp, #-436]
	ldr	r0, .L563+16
	bl	printk
	mov	r3, #0
	str	r3, [fp, #-680]
	ldr	r3, [fp, #-620]
	ldrb	r3, [r3]
	strb	r3, [fp, #-699]
	ldrb	r3, [fp, #-699]	@ zero_extendqisi2
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	cmp	r3, #16
	ble	.L550
	ldr	r1, [fp, #-712]
	ldr	r0, .L563+20
	bl	printk
.L550:
	mov	r3, #0
	str	r3, [fp, #-684]
.L551:
	ldr	r3, [fp, #-620]
	ldrb	r3, [r3]
	strb	r3, [fp, #-698]
	ldrb	r3, [fp, #-698]	@ zero_extendqisi2
	str	r3, [fp, #-428]
	ldr	r2, [fp, #-680]
	ldr	r3, [fp, #-428]
	cmp	r2, r3
	bcs	.L561
	ldr	r3, [fp, #-684]
	cmp	r3, #15
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-424]
	cmp	r3, #0
	beq	.L562
	ldr	r3, .L563+8
	str	r3, [fp, #-420]
	mov	r3, #18
	strb	r3, [fp, #-697]
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-416]
	ldr	r3, [fp, #-420]
	str	r3, [fp, #-412]
	ldrb	r0, [fp, #-697]	@ zero_extendqisi2
	ldr	r3, [fp, #-684]
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-412]
	ldr	r2, [fp, #-416]
	ldr	r1, [fp, #-712]
	bl	sendcmd
	str	r0, [fp, #-476]
	ldr	r3, [fp, #-476]
	cmp	r3, #1
	bne	.L555
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	add	r3, r3, #12
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	mov	r2, #0
	str	r2, [r3]
	ldr	r2, [fp, #-684]
	ldr	r1, [fp, #-712]
	ldr	r0, .L563+24
	bl	printk
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-108]
	ldr	r0, [fp, #-108]
	bl	kfree
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-104]
	ldr	r0, [fp, #-104]
	bl	kfree
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-100]
	ldr	r0, [fp, #-100]
	bl	kfree
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-96]
	ldr	r0, [fp, #-96]
	bl	kfree
	b	.L540
.L555:
	ldr	r3, [fp, #-596]
	ldrb	r3, [r3]
	strb	r3, [fp, #-696]
	ldrb	r3, [fp, #-696]	@ zero_extendqisi2
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-408]
	cmp	r3, #2
	beq	.L556
	mov	r3, #16
	strb	r3, [fp, #-695]
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-404]
	mov	r3, #32
	str	r3, [fp, #-400]
	ldrb	r0, [fp, #-695]	@ zero_extendqisi2
	ldr	r3, [fp, #-684]
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-400]
	ldr	r2, [fp, #-404]
	ldr	r1, [fp, #-712]
	bl	sendcmd
	str	r0, [fp, #-476]
	ldr	r3, [fp, #-476]
	cmp	r3, #1
	beq	.L557
	ldr	r2, [fp, #-684]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-396]
	add	r3, r3, #112
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-388]
	ldr	r2, [fp, #-388]
	ldr	r3, [fp, #-392]
	add	r3, r2, r3
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-384]
	str	r3, [fp, #-380]
	sub	r3, fp, #4
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldr	r2, [fp, #-644]
	ldrh	r2, [r2]	@ movhi
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #4
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r2, [r3]
	ldr	r3, [fp, #-380]
	str	r2, [r3]
	ldr	r3, [fp, #-380]
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-376]
	add	r3, r3, #4
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-368]
	add	r3, r3, #4
	str	r3, [fp, #-364]
	ldr	r2, [fp, #-364]
	ldr	r3, [fp, #-372]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-380]
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-360]
	add	r3, r3, #8
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	add	r3, r3, #8
	str	r3, [fp, #-348]
	ldr	r2, [fp, #-348]
	sub	r3, fp, #4
	sub	r3, r3, #684
	ldrh	r2, [r2]	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-356]
	sub	r2, fp, #4
	sub	r2, r2, #684
	ldrh	r2, [r2]
	str	r2, [r3]
	ldr	r3, [fp, #-380]
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-344]
	add	r3, r3, #12
	str	r3, [fp, #-340]
	mov	r3, #10
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-332]
	ldr	r2, [fp, #-332]
	ldr	r3, [fp, #-336]
	add	r3, r2, r3
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-328]
	ldrb	r3, [r3]
	strb	r3, [fp, #-694]
	ldr	r3, [fp, #-340]
	ldrb	r2, [fp, #-694]	@ zero_extendqisi2
	str	r2, [r3]
	ldr	r3, [fp, #-380]
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-324]
	add	r3, r3, #16
	str	r3, [fp, #-320]
	mov	r3, #24
	str	r3, [fp, #-316]
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-312]
	ldr	r2, [fp, #-312]
	ldr	r3, [fp, #-316]
	add	r3, r2, r3
	str	r3, [fp, #-308]
	ldr	r3, [fp, #-308]
	ldrb	r3, [r3]
	strb	r3, [fp, #-693]
	ldr	r3, [fp, #-320]
	ldrb	r2, [fp, #-693]	@ zero_extendqisi2
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	add	r3, r3, #12
	str	r3, [fp, #-300]
	mov	r2, #1
	ldr	r3, [fp, #-684]
	lsl	r3, r2, r3
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-288]
	ldr	r3, [fp, #-288]
	add	r3, r3, #12
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	ldr	r3, [r3]
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-300]
	ldr	r1, [fp, #-280]
	ldr	r2, [fp, #-292]
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-380]
	ldr	r3, [r3]
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-380]
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	add	r3, r3, #4
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	ldr	r3, [r3]
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	str	r3, [sp]
	ldr	r3, [fp, #-276]
	ldr	r2, [fp, #-684]
	ldr	r1, [fp, #-712]
	ldr	r0, .L563+28
	bl	printk
	mov	r3, #80
	strb	r3, [fp, #-692]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-260]
	mov	r3, #484
	str	r3, [fp, #-256]
	ldrb	r0, [fp, #-692]	@ zero_extendqisi2
	ldr	r3, [fp, #-684]
	str	r3, [sp, #8]
	mov	r3, #0
	str	r3, [sp, #4]
	mov	r3, #0
	str	r3, [sp]
	ldr	r3, [fp, #-256]
	ldr	r2, [fp, #-260]
	ldr	r1, [fp, #-712]
	bl	sendcmd
	str	r0, [fp, #-476]
	ldr	r3, [fp, #-476]
	cmp	r3, #1
	bne	.L558
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	add	r3, r3, #12
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	mov	r2, #0
	str	r2, [r3]
	ldr	r0, .L563+32
	bl	printk
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-132]
	ldr	r0, [fp, #-132]
	bl	kfree
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-128]
	ldr	r0, [fp, #-128]
	bl	kfree
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-124]
	ldr	r0, [fp, #-124]
	bl	kfree
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-120]
	ldr	r0, [fp, #-120]
	bl	kfree
	b	.L540
.L558:
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	add	r3, r3, #40
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	add	r3, r3, #8
	str	r3, [fp, #-240]
	ldr	r2, [fp, #-240]
	sub	r3, fp, #4
	sub	r3, r3, #680
	sub	r3, r3, #2
	ldrh	r2, [r2]	@ movhi
	strh	r2, [r3]	@ movhi
	ldr	r2, [fp, #-248]
	sub	r3, fp, #4
	sub	r3, r3, #680
	sub	r3, r3, #2
	ldrh	r3, [r3]
	str	r3, [r2]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	add	r3, r3, #16
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	add	r3, r3, #48
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-224]
	ldr	r3, [r3]
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	add	r3, r3, #16
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	ldr	r3, [r3]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-232]
	ldr	r1, [fp, #-208]
	ldr	r2, [fp, #-220]
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	add	r3, r3, #16
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	add	r3, r3, #56
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	ldr	r3, [r3]
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	add	r3, r3, #16
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	ldr	r3, [r3]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-200]
	ldr	r1, [fp, #-176]
	ldr	r2, [fp, #-188]
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	add	r3, r3, #20
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	add	r3, r3, #56
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-664]
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	add	r3, r3, #20
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	ldr	r3, [r3]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-168]
	ldr	r1, [fp, #-144]
	ldr	r2, [fp, #-156]
	orr	r2, r1, r2
	str	r2, [r3]
.L557:
	ldr	r3, [fp, #-680]
	add	r3, r3, #1
	str	r3, [fp, #-680]
.L556:
	ldr	r3, [fp, #-684]
	add	r3, r3, #1
	str	r3, [fp, #-684]
	b	.L551
.L561:
	nop
	b	.L554
.L562:
	nop
.L554:
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-92]
	ldr	r0, [fp, #-92]
	bl	kfree
	ldr	r3, [fp, #-644]
	str	r3, [fp, #-88]
	ldr	r0, [fp, #-88]
	bl	kfree
	ldr	r3, [fp, #-596]
	str	r3, [fp, #-84]
	ldr	r0, [fp, #-84]
	bl	kfree
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-80]
	ldr	r0, [fp, #-80]
	bl	kfree
	nop
.L540:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L564:
	.align	2
.L563:
	.word	hba
	.word	.LC54
	.word	1036
	.word	.LC55
	.word	.LC56
	.word	.LC57
	.word	.LC58
	.word	.LC59
	.word	.LC60
	.size	getgeometry, .-getgeometry
	.section	.rodata
	.align	2
.LC61:
	.ascii	"<4>cpqarray: Removing EISA controller %d\012\000"
	.text
	.align	2
	.global	cpqarray_exit
	.syntax unified
	.arm
	.fpu softvfp
	.type	cpqarray_exit, %function
cpqarray_exit:
	@ 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	r0, .L573
	bl	pci_unregister_driver
	mov	r3, #0
	str	r3, [fp, #-32]
.L566:
	ldr	r3, [fp, #-32]
	cmp	r3, #7
	bgt	.L572
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L573+4
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-24]
	cmp	r2, r3
	beq	.L569
	ldr	r1, [fp, #-32]
	ldr	r0, .L573+8
	bl	printk
	ldr	r0, [fp, #-32]
	bl	cpqarray_remove_one_eisa
.L569:
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
	b	.L566
.L572:
	nop
.L568:
	ldr	r3, .L573+12
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, .L573+16
	bl	remove_proc_entry
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L574:
	.align	2
.L573:
	.word	cpqarray_pci_driver
	.word	hba
	.word	.LC61
	.word	proc_root_driver
	.word	.LC16
	.size	cpqarray_exit, .-cpqarray_exit
	.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
	.global	number_genhd_registered
	.align	1
	.type	number_genhd_registered, %object
	.size	number_genhd_registered, 2
number_genhd_registered:
	.space	2
	.global	number_fixed_genhd_used
	.align	1
	.type	number_fixed_genhd_used, %object
	.size	number_fixed_genhd_used, 2
number_fixed_genhd_used:
	.space	2
	.comm	fixed_gendisk,1720,4
	.comm	genhd_registered,1600,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, .L589
	bl	spin_lock_init
	mov	r3, #0
	str	r3, [fp, #-44]
.L578:
	ldr	r3, [fp, #-44]
	cmp	r3, #9
	bgt	.L587
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #3
	str	r3, [fp, #-16]
	ldr	r2, .L589+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	.L578
.L587:
	nop
.L580:
	mov	r3, #0
	str	r3, [fp, #-44]
.L581:
	ldr	r3, [fp, #-44]
	cmp	r3, #9
	bgt	.L588
	ldr	r3, [fp, #-44]
	lsl	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r2, .L589+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, .L589+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	.L581
.L588:
	nop
.L583:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L590:
	.align	2
.L589:
	.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]
.L592:
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]
	cmp	r3, #1
	beq	.L617
	ldrh	r3, [fp, #-6]
	cmp	r3, #2
	beq	.L618
	ldrh	r3, [fp, #-6]
	cmp	r3, #3
	beq	.L619
	ldrh	r3, [fp, #-6]
	cmp	r3, #4
	beq	.L620
	ldrh	r3, [fp, #-6]
	cmp	r3, #5
	beq	.L621
	ldrh	r3, [fp, #-6]
	cmp	r3, #6
	bne	.L622
	b	.L615
.L617:
	nop
.L594:
	b	.L606
.L618:
	nop
.L596:
	ldr	r3, .L624
	mov	r2, #2
	str	r2, [r3]
	bl	call_timer_functions
	ldr	r3, .L624
	mov	r2, #1
	str	r2, [r3]
	b	.L606
.L619:
	nop
.L598:
	ldr	r3, .L624
	mov	r2, #2
	str	r2, [r3]
	bl	call_interrupt_handler
	ldr	r3, .L624
	mov	r2, #1
	str	r2, [r3]
	b	.L606
.L620:
	nop
.L600:
	ldr	r3, .L624
	mov	r2, #1
	str	r2, [r3]
	bl	call_shared_workqueue_functions
	ldr	r3, .L624
	mov	r2, #1
	str	r2, [r3]
	b	.L606
.L621:
	nop
.L602:
	ldr	r3, .L624
	mov	r2, #2
	str	r2, [r3]
	bl	call_tasklet_functions
	ldr	r3, .L624
	mov	r2, #1
	str	r2, [r3]
	b	.L606
.L615:
.L604:
	ldr	r3, .L624
	mov	r2, #1
	str	r2, [r3]
	bl	call_pci_functions
	ldr	r3, .L624
	mov	r2, #1
	str	r2, [r3]
	b	.L606
.L622:
	nop
.L605:
	nop
.L606:
	ldrh	r3, [fp, #-6]
	cmp	r3, #0
	beq	.L623
	b	.L592
.L623:
	nop
.L608:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L625:
	.align	2
.L624:
	.word	current_execution_context
	.size	ddv_2, .-ddv_2
	.section	.rodata
	.align	2
.LC62:
	.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, .L634
	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, .L634+4
	ldr	r1, [fp, #-20]
	bl	pthread_create
.L627:
	ldr	r3, .L634+8
	mov	r2, #1
	str	r2, [r3]
	bl	call_genhd_functions
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	beq	.L633
	b	.L627
.L633:
	nop
.L629:
	nop
	ldr	r3, .L634
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L631
	bl	__stack_chk_fail
.L631:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L635:
	.align	2
.L634:
	.word	.LC62
	.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, .L639
	mov	r2, #1
	str	r2, [r3]
	bl	init_kernel
	bl	cpqarray_init
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L637
	mvn	r3, #0
	b	.L638
.L637:
	bl	ddv
	ldr	r3, .L639
	mov	r2, #1
	str	r2, [r3]
	bl	cpqarray_exit
	mov	r3, #0
.L638:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L640:
	.align	2
.L639:
	.word	current_execution_context
	.size	call_ddv, .-call_ddv
	.section	.rodata
	.align	2
.LC63:
	.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, .L772
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L772+4
	ldrsh	r3, [r3]
	str	r3, [fp, #-692]
	ldr	r3, [fp, #-692]
	cmp	r3, #0
	beq	.L738
	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	.L644
	ldr	r3, .L772+4
	ldrsh	r3, [r3]
	str	r3, [fp, #-684]
	ldr	r2, [fp, #-688]
	ldr	r3, [fp, #-684]
	cmp	r2, r3
	bge	.L645
	mov	r3, #1
	str	r3, [fp, #-696]
	b	.L646
.L645:
	mov	r3, #0
	str	r3, [fp, #-696]
	b	.L646
.L644:
	mov	r3, #0
	str	r3, [fp, #-696]
.L646:
	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	.L739
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #1
	beq	.L740
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #2
	beq	.L741
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #3
	beq	.L742
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #4
	beq	.L743
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #5
	beq	.L744
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #6
	beq	.L745
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #7
	beq	.L746
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #8
	beq	.L747
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #9
	beq	.L748
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #10
	beq	.L749
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #11
	beq	.L750
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #12
	beq	.L751
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #13
	beq	.L752
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #14
	beq	.L753
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #15
	beq	.L754
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #16
	beq	.L755
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #17
	beq	.L756
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #18
	beq	.L757
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #19
	beq	.L758
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #20
	beq	.L759
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #21
	beq	.L760
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #22
	beq	.L761
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #23
	beq	.L762
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #24
	beq	.L763
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #25
	beq	.L764
	sub	r3, fp, #12
	sub	r3, r3, #684
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #26
	bne	.L765
	b	.L737
.L739:
	nop
.L648:
	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, .L772+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	.L766
	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, .L772+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, .L772+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	.L766
.L740:
	nop
.L650:
	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, .L772+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	.L767
	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, .L772+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, .L772+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	.L767
.L741:
	nop
.L652:
	b	.L703
.L742:
	nop
.L654:
	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, .L772+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	.L768
	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, .L772+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, .L772+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	.L768
.L743:
	nop
.L656:
	b	.L703
.L744:
	nop
.L658:
	b	.L703
.L745:
	nop
.L660:
	b	.L703
.L746:
	nop
.L662:
	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, .L772+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	.L769
	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, .L772+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, .L772+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, .L772+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	.L769
.L747:
	nop
.L664:
	b	.L703
.L748:
	nop
.L666:
	b	.L703
.L749:
	nop
.L668:
	b	.L703
.L750:
	nop
.L670:
	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, .L772+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	.L770
	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, .L772+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	.L770
	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, .L772+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, .L772+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, .L772+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	.L770
	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, .L772+8
	ldr	r3, [fp, #-432]
	add	r3, r3, r2
	str	r3, [fp, #-428]
	ldr	r3, [fp, #-428]
	mov	r2, #1
	str	r2, [r3]
	b	.L770
.L751:
	nop
.L672:
	b	.L703
.L752:
	nop
.L674:
	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, .L772+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	.L771
	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, .L772+8
	ldr	r3, [fp, #-644]
	add	r3, r3, r2
	str	r3, [fp, #-640]
	ldr	r3, [fp, #-640]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L771
	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, .L772+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, .L772+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, .L772+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	.L771
	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, .L772+8
	ldr	r3, [fp, #-560]
	add	r3, r3, r2
	str	r3, [fp, #-556]
	ldr	r3, [fp, #-556]
	mov	r2, #0
	str	r2, [r3]
	b	.L771
.L753:
	nop
.L676:
	b	.L703
.L754:
	nop
.L678:
	b	.L703
.L755:
	nop
.L680:
	b	.L703
.L756:
	nop
.L682:
	b	.L703
.L757:
	nop
.L684:
	b	.L703
.L758:
	nop
.L686:
	b	.L703
.L759:
	nop
.L688:
	b	.L703
.L760:
	nop
.L690:
	b	.L703
.L761:
	nop
.L692:
	b	.L703
.L762:
	nop
.L694:
	b	.L703
.L763:
	nop
.L696:
	b	.L703
.L764:
	nop
.L698:
	b	.L703
.L737:
.L700:
	b	.L703
.L765:
	nop
.L701:
	b	.L703
.L766:
	nop
	b	.L641
.L767:
	nop
	b	.L641
.L768:
	nop
	b	.L641
.L769:
	nop
	b	.L641
.L770:
	nop
	b	.L641
.L771:
	nop
.L703:
	b	.L641
.L738:
	nop
.L641:
	ldr	r3, .L772
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L710
	bl	__stack_chk_fail
.L710:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L773:
	.align	2
.L772:
	.word	.LC63
	.word	number_cdev_registered
	.word	cdev_registered
	.size	call_cdev_functions, .-call_cdev_functions
	.section	.rodata
	.align	2
.LC64:
	.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, .L779
	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, .L779+4
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L778
	ldrh	r3, [fp, #-66]
	lsl	r3, r3, #4
	str	r3, [fp, #-40]
	ldr	r2, .L779+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, .L779+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
.L778:
	nop
	ldr	r3, .L779
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L777
	bl	__stack_chk_fail
.L777:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L780:
	.align	2
.L779:
	.word	.LC64
	.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, .L786
	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, .L786
	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, .L786
	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, .L786
	add	r3, r3, #8
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, .L786
	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	.L784
	ldr	r3, .L786
	add	r3, r3, #452
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3]
.L784:
	ldr	r3, [fp, #-12]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L787:
	.align	2
.L786:
	.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, .L790
	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, .L790
	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, .L790
	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}
.L791:
	.align	2
.L790:
	.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	.L804
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	bne	.L805
	b	.L803
.L804:
	nop
.L794:
	ldr	r3, .L808
	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	.L806
	bl	pci_probe_device
	b	.L806
.L803:
.L796:
	ldr	r3, .L808
	add	r3, r3, #452
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L807
	bl	pci_remove_device
	b	.L807
.L805:
	nop
.L797:
	b	.L799
.L806:
	nop
	b	.L799
.L807:
	nop
.L799:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L809:
	.align	2
.L808:
	.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, .L814
	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	.L813
	ldr	r3, [fp, #-136]
	lsl	r3, r3, #4
	str	r3, [fp, #-104]
	ldr	r2, .L814
	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	.L813
	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, .L814
	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, .L814
	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, .L814
	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, .L814
	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, .L814
	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
.L813:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L815:
	.align	2
.L814:
	.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, .L820
	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, .L820+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	.L819
	ldrh	r3, [fp, #-86]
	lsl	r3, r3, #3
	str	r3, [fp, #-52]
	ldr	r2, .L820+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, .L820+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
.L819:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L821:
	.align	2
.L820:
	.word	number_timer_registered
	.word	timer_registered
	.size	call_timer_functions, .-call_timer_functions
	.align	2
	.global	pci_enable_device
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_enable_device, %function
pci_enable_device:
	@ 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, #-112]
	mov	r3, #0
	str	r3, [fp, #-100]
.L823:
	ldr	r3, [fp, #-100]
	cmp	r3, #11
	bgt	.L828
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #5
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	add	r3, r3, #24
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	add	r3, r3, #56
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-88]
	add	r3, r2, r3
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	mov	r2, #256
	str	r2, [r3]
	bl	__VERIFIER_nondet_uint
	str	r0, [fp, #-76]
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #5
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	add	r3, r3, #56
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-60]
	ldr	r2, [fp, #-60]
	ldr	r3, [fp, #-64]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r2, [fp, #-76]
	str	r2, [r3]
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [fp, #-102]	@ movhi
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #5
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #56
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	add	r3, r2, r3
	str	r3, [fp, #-36]
	ldrh	r3, [fp, #-102]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-100]
	lsl	r3, r3, #5
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #8
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #56
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-112]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-36]
	ldr	r1, [fp, #-8]
	ldr	r2, [fp, #-32]
	add	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	str	r3, [fp, #-100]
	b	.L823
.L828:
	nop
.L825:
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	pci_enable_device, .-pci_enable_device
	.align	2
	.global	pci_register_driver
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_register_driver, %function
pci_register_driver:
	@ 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]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-24]
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	beq	.L830
	ldr	r3, .L832
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	str	r2, [r3]
	ldr	r3, .L832
	add	r3, r3, #448
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, .L832
	add	r3, r3, #452
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	mov	r3, #0
	b	.L831
.L830:
	mvn	r3, #0
.L831:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L833:
	.align	2
.L832:
	.word	registered_pci_driver
	.size	pci_register_driver, .-pci_register_driver
	.align	2
	.global	pci_unregister_driver
	.syntax unified
	.arm
	.fpu softvfp
	.type	pci_unregister_driver, %function
pci_unregister_driver:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #28
	str	r0, [fp, #-24]
	ldr	r3, .L836
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	ldr	r3, .L836
	add	r3, r3, #448
	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
.L837:
	.align	2
.L836:
	.word	registered_pci_driver
	.size	pci_unregister_driver, .-pci_unregister_driver
	.section	.rodata
	.align	2
.LC65:
	.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, .L840
	ldr	r3, [r3]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-8]
	ldr	r1, .L840+4
	ldr	r0, [fp, #-8]
	bl	__CPROVER_assert
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L841:
	.align	2
.L840:
	.word	current_execution_context
	.word	.LC65
	.size	assert_context_process, .-assert_context_process
	.align	2
	.global	put_user
	.syntax unified
	.arm
	.fpu softvfp
	.type	put_user, %function
put_user:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	bl	assert_context_process
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	put_user, .-put_user
	.align	2
	.global	copy_to_user
	.syntax unified
	.arm
	.fpu softvfp
	.type	copy_to_user, %function
copy_to_user:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	bl	assert_context_process
	bl	__VERIFIER_nondet_ulong
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	copy_to_user, .-copy_to_user
	.align	2
	.global	copy_from_user
	.syntax unified
	.arm
	.fpu softvfp
	.type	copy_from_user, %function
copy_from_user:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	bl	assert_context_process
	bl	__VERIFIER_nondet_ulong
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	copy_from_user, .-copy_from_user
	.align	2
	.global	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	.L849
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L850
.L849:
	ldr	r3, [fp, #-8]
	cmn	r3, #1
	bne	.L851
	mov	r3, #1
	str	r3, [fp, #-16]
	b	.L850
.L851:
	mov	r3, #0
	str	r3, [fp, #-16]
.L850:
	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	.L854
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L855
.L854:
	ldr	r3, [fp, #-24]
	cmn	r3, #1
	bne	.L856
	mov	r3, #1
	str	r3, [fp, #-32]
	b	.L855
.L856:
	mov	r3, #0
	str	r3, [fp, #-32]
.L855:
	ldr	r0, [fp, #-32]
	bl	__CPROVER_assume
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bne	.L857
	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]
.L857:
	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	.L860
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	kfree
	ldr	r3, [fp, #-12]
	b	.L861
.L860:
	ldr	r3, [fp, #-48]
.L861:
	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	.L865
	mov	r3, #1
	str	r3, [fp, #-96]
	b	.L866
.L865:
	ldr	r3, [fp, #-72]
	cmn	r3, #1
	bne	.L867
	mov	r3, #1
	str	r3, [fp, #-96]
	b	.L866
.L867:
	mov	r3, #0
	str	r3, [fp, #-96]
.L866:
	ldr	r0, [fp, #-96]
	bl	__CPROVER_assume
	ldr	r3, [fp, #-72]
	cmp	r3, #0
	bne	.L868
	ldr	r3, .L871
	ldrsh	r3, [r3]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	cmp	r3, #9
	bgt	.L869
	ldr	r3, .L871
	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, .L871+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, .L871
	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, .L871+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, .L871
	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, .L871+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, .L871
	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, .L871+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, .L871
	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, .L871
	strh	r3, [r2]	@ movhi
	b	.L868
.L869:
	mvn	r3, #0
	b	.L870
.L868:
	ldr	r3, [fp, #-72]
.L870:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L872:
	.align	2
.L871:
	.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]
.L874:
	ldr	r3, .L881
	ldrsh	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bge	.L880
	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, .L881+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	.L877
	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, .L881+4
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #0
	str	r2, [r3]
	b	.L873
.L877:
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
	b	.L874
.L880:
	nop
.L876:
	nop
.L873:
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L882:
	.align	2
.L881:
	.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
.LC66:
	.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, .L887
	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}
.L888:
	.align	2
.L887:
	.word	.LC66
	.size	mutex_init, .-mutex_init
	.section	.rodata
	.align	2
.LC67:
	.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, .L891
	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}
.L892:
	.align	2
.L891:
	.word	.LC67
	.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, .L895
	str	r3, [r2]
	ldr	r3, [fp, #-28]
	ldr	r2, .L895+4
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L896:
	.align	2
.L895:
	.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, .L899
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L899+4
	mov	r2, #0
	str	r2, [r3]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L900:
	.align	2
.L899:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.size	release_region, .-release_region
	.section	.rodata
	.align	2
.LC68:
	.ascii	"I/O port is requested\000"
	.text
	.align	2
	.global	inb
	.syntax unified
	.arm
	.fpu softvfp
	.type	inb, %function
inb:
	@ 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]
	ldr	r3, .L906
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L902
	ldr	r3, .L906
	ldr	r2, [r3]
	ldr	r3, .L906+4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L903
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L904
.L903:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L904
.L902:
	mov	r3, #0
	str	r3, [fp, #-20]
.L904:
	ldr	r1, .L906+8
	ldr	r0, [fp, #-20]
	bl	__CPROVER_assert
	bl	__VERIFIER_nondet_uchar
	mov	r3, r0
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L907:
	.align	2
.L906:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.word	.LC68
	.size	inb, .-inb
	.align	2
	.global	outb
	.syntax unified
	.arm
	.fpu softvfp
	.type	outb, %function
outb:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mov	r3, r0
	str	r1, [fp, #-28]
	strb	r3, [fp, #-21]
	ldr	r3, .L913
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L909
	ldr	r3, .L913
	ldr	r2, [r3]
	ldr	r3, .L913+4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L910
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L911
.L910:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L911
.L909:
	mov	r3, #0
	str	r3, [fp, #-20]
.L911:
	ldr	r1, .L913+8
	ldr	r0, [fp, #-20]
	bl	__CPROVER_assert
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L914:
	.align	2
.L913:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.word	.LC68
	.size	outb, .-outb
	.align	2
	.global	outw
	.syntax unified
	.arm
	.fpu softvfp
	.type	outw, %function
outw:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mov	r3, r0
	str	r1, [fp, #-28]
	strh	r3, [fp, #-22]	@ movhi
	ldr	r3, .L920
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L916
	ldr	r3, .L920
	ldr	r2, [r3]
	ldr	r3, .L920+4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L917
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L918
.L917:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L918
.L916:
	mov	r3, #0
	str	r3, [fp, #-20]
.L918:
	ldr	r1, .L920+8
	ldr	r0, [fp, #-20]
	bl	__CPROVER_assert
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L921:
	.align	2
.L920:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.word	.LC68
	.size	outw, .-outw
	.align	2
	.global	inl
	.syntax unified
	.arm
	.fpu softvfp
	.type	inl, %function
inl:
	@ 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]
	ldr	r3, .L927
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-20]
	cmp	r2, r3
	bcc	.L923
	ldr	r3, .L927
	ldr	r2, [r3]
	ldr	r3, .L927+4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-32]
	ldr	r3, [fp, #-12]
	cmp	r2, r3
	bcs	.L924
	mov	r3, #1
	str	r3, [fp, #-24]
	b	.L925
.L924:
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L925
.L923:
	mov	r3, #0
	str	r3, [fp, #-24]
.L925:
	ldr	r1, .L927+8
	ldr	r0, [fp, #-24]
	bl	__CPROVER_assert
	bl	__VERIFIER_nondet_unsigned
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L928:
	.align	2
.L927:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.word	.LC68
	.size	inl, .-inl
	.align	2
	.global	outl
	.syntax unified
	.arm
	.fpu softvfp
	.type	outl, %function
outl:
	@ 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]
	str	r1, [fp, #-28]
	ldr	r3, .L934
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	bcc	.L930
	ldr	r3, .L934
	ldr	r2, [r3]
	ldr	r3, .L934+4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-8]
	cmp	r2, r3
	bcs	.L931
	mov	r3, #1
	str	r3, [fp, #-20]
	b	.L932
.L931:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L932
.L930:
	mov	r3, #0
	str	r3, [fp, #-20]
.L932:
	ldr	r1, .L934+8
	ldr	r0, [fp, #-20]
	bl	__CPROVER_assert
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L935:
	.align	2
.L934:
	.word	ddv_ioport_request_start
	.word	ddv_ioport_request_len
	.word	.LC68
	.size	outl, .-outl
	.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
	.section	.rodata
	.align	2
.LC69:
	.ascii	"Spinlock is not initialized\000"
	.text
	.align	2
	.global	spin_lock_irqsave
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_lock_irqsave, %function
spin_lock_irqsave:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r1, .L950
	ldr	r0, [fp, #-28]
	bl	__CPROVER_assert
	bl	__CPROVER_atomic_end
.L945:
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #4
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L946
	ldr	r3, [fp, #-32]
	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
	b	.L949
.L946:
	bl	__CPROVER_atomic_end
	b	.L945
.L947:
.L949:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L951:
	.align	2
.L950:
	.word	.LC69
	.size	spin_lock_irqsave, .-spin_lock_irqsave
	.section	.rodata
	.align	2
.LC70:
	.ascii	"Unlock a not locked spinlock\000"
	.text
	.align	2
	.global	spin_unlock_irqrestore
	.syntax unified
	.arm
	.fpu softvfp
	.type	spin_unlock_irqrestore, %function
spin_unlock_irqrestore:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	bl	__CPROVER_atomic_begin
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	add	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-16]
	ldr	r1, .L954
	ldr	r0, [fp, #-16]
	bl	__CPROVER_assert
	ldr	r3, [fp, #-32]
	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]
	bl	__CPROVER_atomic_end
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L955:
	.align	2
.L954:
	.word	.LC70
	.size	spin_unlock_irqrestore, .-spin_unlock_irqrestore
	.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, .L960
	ldrsh	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #4
	bgt	.L959
	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, .L960
	ldrsh	r3, [r3]
	lsl	r3, r3, #3
	str	r3, [fp, #-20]
	ldr	r2, .L960+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, .L960
	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, .L960
	strh	r3, [r2]	@ movhi
	nop
.L959:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L961:
	.align	2
.L960:
	.word	number_timer_registered
	.word	timer_registered
	.size	init_timer, .-init_timer
	.section	.rodata
	.align	2
.LC71:
	.ascii	"Timer is initialized\000"
	.text
	.align	2
	.global	add_timer
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_timer, %function
add_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]
	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, .L964
	ldr	r0, [fp, #-16]
	bl	__CPROVER_assert
	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
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L965:
	.align	2
.L964:
	.word	.LC71
	.size	add_timer, .-add_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
	.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, .L970
	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}
.L971:
	.align	2
.L970:
	.word	.LC71
	.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, .L980
	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	.L979
	ldrh	r3, [fp, #-98]
	lsl	r3, r3, #3
	str	r3, [fp, #-64]
	ldr	r2, .L980
	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, .L980
	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, .L980
	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
.L979:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L981:
	.align	2
.L980:
	.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, .L984
	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, .L984
	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
.L985:
	.align	2
.L984:
	.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	.L987
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r2, .L989
	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, .L989
	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	.L988
.L987:
	mvn	r3, #0
.L988:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L990:
	.align	2
.L989:
	.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	.L992
	bl	assert_context_process
.L992:
	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	.L995
	bl	assert_context_process
.L995:
	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	.L998
	bl	assert_context_process
.L998:
	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	.L1001
	bl	assert_context_process
.L1001:
	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	.L1004
	bl	assert_context_process
.L1004:
	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	create_request
	.syntax unified
	.arm
	.fpu softvfp
	.type	create_request, %function
create_request:
	@ args = 0, pretend = 0, frame = 112
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #116
	str	r0, [fp, #-120]
	mov	r3, #132
	str	r3, [fp, #-112]
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-108]
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-112]
	add	r3, r2, r3
	str	r3, [fp, #-104]
	ldr	r2, .L1010
	ldr	r3, [fp, #-104]
	add	r3, r3, r2
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-100]
	mov	r2, #1
	str	r2, [r3]
	mov	r3, #176
	str	r3, [fp, #-96]
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-92]
	ldr	r2, [fp, #-92]
	ldr	r3, [fp, #-96]
	add	r3, r2, r3
	str	r3, [fp, #-88]
	ldr	r2, .L1010
	ldr	r3, [fp, #-88]
	add	r3, r3, r2
	str	r3, [fp, #-84]
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-80]
	ldr	r2, .L1010
	ldr	r3, [fp, #-80]
	add	r3, r3, r2
	str	r3, [fp, #-76]
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-84]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r3, #136
	str	r3, [fp, #-72]
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-68]
	ldr	r2, [fp, #-68]
	ldr	r3, [fp, #-72]
	add	r3, r2, r3
	str	r3, [fp, #-64]
	ldr	r2, .L1010
	ldr	r3, [fp, #-64]
	add	r3, r3, r2
	str	r3, [fp, #-60]
	ldr	r4, [fp, #-60]
	bl	__VERIFIER_nondet_sector_t
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #152
	str	r3, [fp, #-56]
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r2, .L1010
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r4, [fp, #-44]
	bl	__VERIFIER_nondet_uint
	mov	r3, r0
	str	r3, [r4]
	mov	r3, #192
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, .L1010
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	bl	__VERIFIER_nondet_pchar
	mov	r2, r0
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r2, [fp, #-120]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #232
	str	r3, [fp, #-20]
	ldr	r2, .L1010
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	mov	r2, #1
	str	r2, [r3]
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1011:
	.align	2
.L1010:
	.word	genhd_registered
	.size	create_request, .-create_request
	.align	2
	.global	call_rq_function
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_rq_function, %function
call_rq_function:
	@ args = 0, pretend = 0, frame = 272
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #272
	str	r0, [fp, #-272]
	mov	r3, #0
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	str	r3, [fp, #-260]
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-256]
	ldr	r2, .L1016
	ldr	r3, [fp, #-256]
	add	r3, r3, r2
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	ldr	r3, [r3]
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	add	r3, r3, #56
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	ldr	r3, [r3]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	ldr	r3, [r3]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	str	r3, [fp, #-228]
	ldr	r2, [fp, #-228]
	ldr	r3, [fp, #-260]
	cmp	r2, r3
	beq	.L1013
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-224]
	ldr	r2, .L1016
	ldr	r3, [fp, #-224]
	add	r3, r3, r2
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	ldr	r3, [r3]
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-216]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	add	r3, r3, #56
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	add	r3, r3, #80
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1013
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-192]
	ldr	r2, .L1016
	ldr	r3, [fp, #-192]
	add	r3, r3, r2
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	ldr	r3, [r3]
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	add	r3, r3, #56
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	ldr	r3, [r3]
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	add	r3, r3, #64
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-164]
	ldr	r3, [r3]
	str	r3, [fp, #-160]
	ldr	r0, [fp, #-160]
	bl	spin_lock
	ldr	r0, [fp, #-272]
	bl	create_request
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-156]
	ldr	r2, .L1016
	ldr	r3, [fp, #-156]
	add	r3, r3, r2
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-148]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	add	r3, r3, #56
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	ldr	r3, [r3]
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-132]
	add	r3, r3, #76
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	ldr	r2, [fp, #-272]
	str	r2, [r3]
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-124]
	ldr	r2, .L1016
	ldr	r3, [fp, #-124]
	add	r3, r3, r2
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	add	r3, r3, #56
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	str	r3, [fp, #-100]
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-96]
	ldr	r2, .L1016
	ldr	r3, [fp, #-96]
	add	r3, r3, r2
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	ldr	r3, [r3]
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	add	r3, r3, #56
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-100]
	ldr	r0, [fp, #-76]
	blx	r3
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-72]
	ldr	r2, .L1016
	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, #56
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	add	r3, r3, #64
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r0, [fp, #-40]
	bl	spin_unlock
	b	.L1012
.L1013:
	ldr	r2, [fp, #-272]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-36]
	ldr	r2, .L1016
	ldr	r3, [fp, #-36]
	add	r3, r3, r2
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #56
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	ldr	r3, [r3]
	str	r3, [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]
	ldr	r3, [r3]
	cmp	r3, #0
	nop
.L1012:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1017:
	.align	2
.L1016:
	.word	genhd_registered
	.size	call_rq_function, .-call_rq_function
	.section	.rodata
	.align	2
.LC72:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	call_genhd_functions
	.syntax unified
	.arm
	.fpu softvfp
	.type	call_genhd_functions, %function
call_genhd_functions:
	@ args = 0, pretend = 0, frame = 648
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #652
	ldr	r3, .L1066
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L1066+4
	ldrsh	r3, [r3]
	str	r3, [fp, #-652]
	ldr	r3, [fp, #-652]
	cmp	r3, #0
	beq	.L1052
	sub	r3, fp, #12
	sub	r4, r3, #644
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [r4]	@ movhi
	ldr	r3, .L1066+4
	ldrsh	r3, [r3]
	str	r3, [fp, #-648]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r3, [r3]
	str	r3, [fp, #-644]
	ldr	r2, [fp, #-644]
	ldr	r3, [fp, #-648]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-640]
	ldr	r0, [fp, #-640]
	bl	__CPROVER_assume
	sub	r3, fp, #12
	sub	r4, r3, #640
	sub	r4, r4, #2
	bl	__VERIFIER_nondet_ushort
	mov	r3, r0
	strh	r3, [r4]	@ movhi
	sub	r3, fp, #12
	sub	r3, r3, #640
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #0
	beq	.L1053
	sub	r3, fp, #12
	sub	r3, r3, #640
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #1
	beq	.L1054
	sub	r3, fp, #12
	sub	r3, r3, #640
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #2
	beq	.L1055
	sub	r3, fp, #12
	sub	r3, r3, #640
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #3
	beq	.L1056
	sub	r3, fp, #12
	sub	r3, r3, #640
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #4
	beq	.L1057
	sub	r3, fp, #12
	sub	r3, r3, #640
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #5
	beq	.L1058
	sub	r3, fp, #12
	sub	r3, r3, #640
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #6
	bne	.L1059
	b	.L1051
.L1053:
	nop
.L1022:
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r3, [r3]
	str	r3, [fp, #-44]
	ldr	r0, [fp, #-44]
	bl	call_rq_function
	b	.L1036
.L1054:
	nop
.L1024:
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-188]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-188]
	add	r3, r3, r2
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-180]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	add	r3, r3, #48
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	ldr	r3, [r3]
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1060
	mov	r3, #32
	str	r3, [fp, #-164]
	ldr	r0, [fp, #-164]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-160]
	mov	r3, #24
	str	r3, [fp, #-156]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-152]
	ldr	r2, [fp, #-152]
	ldr	r3, [fp, #-156]
	add	r3, r2, r3
	str	r3, [fp, #-148]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-148]
	add	r3, r3, r2
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	ldr	r2, [fp, #-160]
	str	r2, [r3]
	mov	r3, #24
	str	r3, [fp, #-140]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-136]
	ldr	r2, [fp, #-136]
	ldr	r3, [fp, #-140]
	add	r3, r2, r3
	str	r3, [fp, #-132]
	ldr	r2, .L1066+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, #24
	str	r3, [fp, #-116]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-112]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-112]
	add	r3, r3, r2
	str	r3, [fp, #-108]
	ldr	r2, [fp, #-108]
	ldr	r3, [fp, #-116]
	ldr	r2, [r2]
	str	r2, [r3]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-104]
	ldr	r2, .L1066+8
	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]
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	add	r3, r3, #48
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	ldr	r3, [r3]
	str	r3, [fp, #-80]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	add	r3, r3, #8
	str	r3, [fp, #-72]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	str	r3, [fp, #-64]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	add	r3, r3, #32
	str	r3, [fp, #-56]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-56]
	add	r3, r3, r2
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-80]
	ldr	r1, [fp, #-48]
	ldr	r0, [fp, #-64]
	blx	r3
	b	.L1060
.L1055:
	nop
.L1026:
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-288]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-288]
	add	r3, r3, r2
	str	r3, [fp, #-284]
	ldr	r3, [fp, #-284]
	ldr	r3, [r3]
	str	r3, [fp, #-280]
	ldr	r3, [fp, #-280]
	str	r3, [fp, #-276]
	ldr	r3, [fp, #-276]
	add	r3, r3, #48
	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]
	cmp	r3, #0
	beq	.L1061
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-256]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-256]
	add	r3, r3, r2
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	ldr	r3, [r3]
	str	r3, [fp, #-248]
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-244]
	add	r3, r3, #48
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	ldr	r3, [r3]
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-232]
	add	r3, r3, #8
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-228]
	ldr	r3, [r3]
	str	r3, [fp, #-224]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-220]
	ldr	r3, [fp, #-220]
	add	r3, r3, #8
	str	r3, [fp, #-216]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-216]
	add	r3, r3, r2
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-212]
	str	r3, [fp, #-208]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	add	r3, r3, #32
	str	r3, [fp, #-200]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-200]
	add	r3, r3, r2
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-224]
	ldr	r1, [fp, #-192]
	ldr	r0, [fp, #-208]
	blx	r3
	b	.L1061
.L1056:
	nop
.L1028:
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-396]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-396]
	add	r3, r3, r2
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	ldr	r3, [r3]
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-388]
	str	r3, [fp, #-384]
	ldr	r3, [fp, #-384]
	add	r3, r3, #48
	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, #16
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-368]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1062
	bl	__VERIFIER_nondet_uint
	str	r0, [fp, #-364]
	bl	__VERIFIER_nondet_ulong
	str	r0, [fp, #-360]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-356]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-356]
	add	r3, r3, r2
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	str	r3, [fp, #-348]
	ldr	r3, [fp, #-348]
	str	r3, [fp, #-344]
	ldr	r3, [fp, #-344]
	add	r3, r3, #48
	str	r3, [fp, #-340]
	ldr	r3, [fp, #-340]
	ldr	r3, [r3]
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	add	r3, r3, #16
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-328]
	ldr	r3, [r3]
	str	r3, [fp, #-324]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-320]
	add	r3, r3, #8
	str	r3, [fp, #-316]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-316]
	add	r3, r3, r2
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-312]
	str	r3, [fp, #-308]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-304]
	add	r3, r3, #32
	str	r3, [fp, #-300]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-300]
	add	r3, r3, r2
	str	r3, [fp, #-296]
	ldr	r3, [fp, #-296]
	str	r3, [fp, #-292]
	ldr	r4, [fp, #-324]
	ldr	r3, [fp, #-360]
	ldr	r2, [fp, #-364]
	ldr	r1, [fp, #-292]
	ldr	r0, [fp, #-308]
	blx	r4
	b	.L1062
.L1057:
	nop
.L1030:
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-476]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-476]
	add	r3, r3, r2
	str	r3, [fp, #-472]
	ldr	r3, [fp, #-472]
	ldr	r3, [r3]
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-464]
	add	r3, r3, #48
	str	r3, [fp, #-460]
	ldr	r3, [fp, #-460]
	ldr	r3, [r3]
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-456]
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-452]
	add	r3, r3, #48
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-448]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1063
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-444]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-444]
	add	r3, r3, r2
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-440]
	ldr	r3, [r3]
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-436]
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	add	r3, r3, #48
	str	r3, [fp, #-428]
	ldr	r3, [fp, #-428]
	ldr	r3, [r3]
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-424]
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-420]
	add	r3, r3, #48
	str	r3, [fp, #-416]
	ldr	r3, [fp, #-416]
	ldr	r3, [r3]
	str	r3, [fp, #-412]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-408]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-408]
	add	r3, r3, r2
	str	r3, [fp, #-404]
	ldr	r3, [fp, #-404]
	ldr	r3, [r3]
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-412]
	ldr	r0, [fp, #-400]
	blx	r3
	b	.L1063
.L1058:
	nop
.L1032:
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-556]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-556]
	add	r3, r3, r2
	str	r3, [fp, #-552]
	ldr	r3, [fp, #-552]
	ldr	r3, [r3]
	str	r3, [fp, #-548]
	ldr	r3, [fp, #-548]
	str	r3, [fp, #-544]
	ldr	r3, [fp, #-544]
	add	r3, r3, #48
	str	r3, [fp, #-540]
	ldr	r3, [fp, #-540]
	ldr	r3, [r3]
	str	r3, [fp, #-536]
	ldr	r3, [fp, #-536]
	str	r3, [fp, #-532]
	ldr	r3, [fp, #-532]
	add	r3, r3, #56
	str	r3, [fp, #-528]
	ldr	r3, [fp, #-528]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1064
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-524]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-524]
	add	r3, r3, r2
	str	r3, [fp, #-520]
	ldr	r3, [fp, #-520]
	ldr	r3, [r3]
	str	r3, [fp, #-516]
	ldr	r3, [fp, #-516]
	str	r3, [fp, #-512]
	ldr	r3, [fp, #-512]
	add	r3, r3, #48
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-508]
	ldr	r3, [r3]
	str	r3, [fp, #-504]
	ldr	r3, [fp, #-504]
	str	r3, [fp, #-500]
	ldr	r3, [fp, #-500]
	add	r3, r3, #56
	str	r3, [fp, #-496]
	ldr	r3, [fp, #-496]
	ldr	r3, [r3]
	str	r3, [fp, #-492]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-488]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-488]
	add	r3, r3, r2
	str	r3, [fp, #-484]
	ldr	r3, [fp, #-484]
	ldr	r3, [r3]
	str	r3, [fp, #-480]
	ldr	r3, [fp, #-492]
	ldr	r0, [fp, #-480]
	blx	r3
	b	.L1064
.L1051:
.L1034:
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-636]
	ldr	r2, .L1066+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, #48
	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, #64
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-608]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L1065
	sub	r3, fp, #32
	add	r3, r3, #24
	str	r3, [fp, #-604]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-600]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-600]
	add	r3, r3, r2
	str	r3, [fp, #-596]
	ldr	r2, [fp, #-596]
	ldr	r3, [fp, #-604]
	ldr	r2, [r2]
	str	r2, [r3]
	sub	r3, fp, #12
	sub	r3, r3, #644
	ldrh	r2, [r3]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-592]
	ldr	r2, .L1066+8
	ldr	r3, [fp, #-592]
	add	r3, r3, r2
	str	r3, [fp, #-588]
	ldr	r3, [fp, #-588]
	ldr	r3, [r3]
	str	r3, [fp, #-584]
	ldr	r3, [fp, #-584]
	str	r3, [fp, #-580]
	ldr	r3, [fp, #-580]
	add	r3, r3, #48
	str	r3, [fp, #-576]
	ldr	r3, [fp, #-576]
	ldr	r3, [r3]
	str	r3, [fp, #-572]
	ldr	r3, [fp, #-572]
	str	r3, [fp, #-568]
	ldr	r3, [fp, #-568]
	add	r3, r3, #64
	str	r3, [fp, #-564]
	ldr	r3, [fp, #-564]
	ldr	r3, [r3]
	str	r3, [fp, #-560]
	sub	r1, fp, #40
	sub	r2, fp, #32
	ldr	r3, [fp, #-560]
	mov	r0, r2
	blx	r3
	b	.L1065
.L1059:
	nop
.L1035:
	b	.L1036
.L1060:
	nop
	b	.L1018
.L1061:
	nop
	b	.L1018
.L1062:
	nop
	b	.L1018
.L1063:
	nop
	b	.L1018
.L1064:
	nop
	b	.L1018
.L1065:
	nop
.L1036:
	b	.L1018
.L1052:
	nop
.L1018:
	ldr	r3, .L1066
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L1044
	bl	__stack_chk_fail
.L1044:
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L1067:
	.align	2
.L1066:
	.word	.LC72
	.word	number_genhd_registered
	.word	genhd_registered
	.size	call_genhd_functions, .-call_genhd_functions
	.align	2
	.global	register_blkdev
	.syntax unified
	.arm
	.fpu softvfp
	.type	register_blkdev, %function
register_blkdev:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	register_blkdev, .-register_blkdev
	.align	2
	.global	unregister_blkdev
	.syntax unified
	.arm
	.fpu softvfp
	.type	unregister_blkdev, %function
unregister_blkdev:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	mov	r3, #0
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	unregister_blkdev, .-unregister_blkdev
	.align	2
	.global	alloc_disk
	.syntax unified
	.arm
	.fpu softvfp
	.type	alloc_disk, %function
alloc_disk:
	@ args = 0, pretend = 0, frame = 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, .L1075
	ldrsh	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #9
	bgt	.L1073
	ldr	r3, .L1075
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r2, .L1075+4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, .L1075
	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, .L1075
	strh	r3, [r2]	@ movhi
	ldr	r3, [fp, #-24]
	b	.L1074
.L1073:
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
.L1074:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L1076:
	.align	2
.L1075:
	.word	number_fixed_genhd_used
	.word	fixed_gendisk
	.size	alloc_disk, .-alloc_disk
	.align	2
	.global	add_disk
	.syntax unified
	.arm
	.fpu softvfp
	.type	add_disk, %function
add_disk:
	@ args = 0, pretend = 0, frame = 80
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #80
	str	r0, [fp, #-80]
	ldr	r3, .L1081
	ldrsh	r3, [r3]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	cmp	r3, #9
	bgt	.L1080
	ldr	r3, .L1081
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-72]
	ldr	r2, .L1081+4
	ldr	r3, [fp, #-72]
	add	r3, r3, r2
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r2, [fp, #-80]
	str	r2, [r3]
	mov	r3, #32
	str	r3, [fp, #-64]
	ldr	r0, [fp, #-64]
	bl	malloc
	mov	r3, r0
	str	r3, [fp, #-60]
	mov	r3, #24
	str	r3, [fp, #-56]
	ldr	r3, .L1081
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-52]
	ldr	r2, [fp, #-52]
	ldr	r3, [fp, #-56]
	add	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r2, .L1081+4
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	ldr	r2, [fp, #-60]
	str	r2, [r3]
	mov	r3, #24
	str	r3, [fp, #-40]
	ldr	r3, .L1081
	ldrsh	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	str	r3, [fp, #-32]
	ldr	r2, .L1081+4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	add	r3, r3, #24
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-80]
	str	r2, [r3]
	ldr	r3, .L1081
	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, .L1081
	strh	r3, [r2]	@ movhi
	nop
.L1080:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L1082:
	.align	2
.L1081:
	.word	number_genhd_registered
	.word	genhd_registered
	.size	add_disk, .-add_disk
	.align	2
	.global	del_gendisk
	.syntax unified
	.arm
	.fpu softvfp
	.type	del_gendisk, %function
del_gendisk:
	@ args = 0, pretend = 0, frame = 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, #-44]
.L1084:
	ldr	r3, .L1091
	ldrsh	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-44]
	ldr	r3, [fp, #-40]
	cmp	r2, r3
	bge	.L1090
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-36]
	ldr	r2, [fp, #-44]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-32]
	ldr	r2, .L1091+4
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-36]
	cmp	r2, r3
	bne	.L1087
	ldr	r2, [fp, #-44]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r2, .L1091+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]
.L1087:
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	b	.L1084
.L1090:
	nop
.L1086:
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L1092:
	.align	2
.L1091:
	.word	number_genhd_registered
	.word	genhd_registered
	.size	del_gendisk, .-del_gendisk
	.comm	fixed_request_queue,480,4
	.global	number_request_queue_used
	.bss
	.align	2
	.type	number_request_queue_used, %object
	.size	number_request_queue_used, 4
number_request_queue_used:
	.space	4
	.text
	.align	2
	.global	get_fixed_request_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	get_fixed_request_queue, %function
get_fixed_request_queue:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	ldr	r3, .L1096
	ldr	r3, [r3]
	cmp	r3, #9
	bgt	.L1094
	ldr	r3, .L1096
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	ldr	r3, .L1096
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L1096
	str	r3, [r2]
	ldr	r2, [fp, #-16]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #3
	str	r3, [fp, #-12]
	ldr	r2, .L1096+4
	ldr	r3, [fp, #-12]
	add	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	b	.L1095
.L1094:
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
.L1095:
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L1097:
	.align	2
.L1096:
	.word	number_request_queue_used
	.word	fixed_request_queue
	.size	get_fixed_request_queue, .-get_fixed_request_queue
	.align	2
	.global	blk_init_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_init_queue, %function
blk_init_queue:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	str	r1, [fp, #-52]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-44]
	ldr	r3, [fp, #-44]
	cmp	r3, #0
	beq	.L1099
	bl	get_fixed_request_queue
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	add	r3, r3, #64
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	ldr	r2, [fp, #-52]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r2, [fp, #-48]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #8
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #80
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-36]
	b	.L1100
.L1099:
	mov	r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
.L1100:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	blk_init_queue, .-blk_init_queue
	.align	2
	.global	blk_alloc_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_alloc_queue, %function
blk_alloc_queue:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	bl	__VERIFIER_nondet_int
	str	r0, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	beq	.L1102
	bl	get_fixed_request_queue
	str	r0, [fp, #-32]
	mov	r3, #0
	str	r3, [fp, #-28]
	ldr	r2, [fp, #-28]
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	add	r3, r3, #8
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #80
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r2, #1
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	b	.L1103
.L1102:
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
.L1103:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	blk_alloc_queue, .-blk_alloc_queue
	.align	2
	.global	blk_queue_make_request
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_queue_make_request, %function
blk_queue_make_request:
	@ args = 0, pretend = 0, frame = 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	blk_queue_make_request, .-blk_queue_make_request
	.align	2
	.global	end_request
	.syntax unified
	.arm
	.fpu softvfp
	.type	end_request, %function
end_request:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #60
	str	r0, [fp, #-56]
	str	r1, [fp, #-60]
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-52]
	add	r3, r3, #88
	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, #56
	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, #76
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #4
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	add	r3, r3, #232
	str	r3, [fp, #-12]
	ldr	r2, .L1108
	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
.L1109:
	.align	2
.L1108:
	.word	genhd_registered
	.size	end_request, .-end_request
	.align	2
	.global	blk_queue_hardsect_size
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_queue_hardsect_size, %function
blk_queue_hardsect_size:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	mov	r3, r1
	strh	r3, [fp, #-18]	@ movhi
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	add	r3, r3, #72
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	ldrh	r2, [fp, #-18]	@ movhi
	strh	r2, [r3]	@ movhi
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	blk_queue_hardsect_size, .-blk_queue_hardsect_size
	.align	2
	.global	blk_cleanup_queue
	.syntax unified
	.arm
	.fpu softvfp
	.type	blk_cleanup_queue, %function
blk_cleanup_queue:
	@ args = 0, pretend = 0, frame = 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, #80
	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	blk_cleanup_queue, .-blk_cleanup_queue
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
