	.file	"extr_dasd_eckd.c_locate_record.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC0:
	.string	"Locate: trk %d, rec %d, no_rec %d, cmd %d, reclen %d"
	.align 8
.LC1:
	.string	"unknown locate record opcode 0x%x"
	.text
	.p2align 4
	.type	locate_record, @function
locate_record:
.LFB0:
	.cfi_startproc
	endbr64
	push	r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	mov	r15d, r9d
	push	r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	mov	r14d, r8d
	push	r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	mov	r13d, ecx
	push	r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	mov	r12d, edx
	push	rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	mov	rbp, rdi
	push	rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	mov	rbx, rsi
	sub	rsp, 24
	.cfi_def_cfa_offset 80
	mov	edi, DWORD PTR DBF_INFO[rip]
	mov	rax, QWORD PTR 80[rsp]
	mov	esi, DWORD PTR 88[rsp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR 8[rsp], rax
	xor	eax, eax
	push	rsi
	.cfi_def_cfa_offset 88
	push	r9
	.cfi_def_cfa_offset 96
	mov	rsi, QWORD PTR 96[rsp]
	mov	r9d, r8d
	mov	r8d, ecx
	mov	ecx, edx
	lea	rdx, .LC0[rip]
	call	DBF_DEV_EVENT@PLT
	mov	eax, DWORD PTR DASD_ECKD_CCW_LOCATE_RECORD[rip]
	mov	QWORD PTR 16[rbp], 0
	mov	rdi, rbx
	mov	DWORD PTR 0[rbp], 16
	mov	DWORD PTR 24[rbp], eax
	call	__pa@PLT
	mov	edx, 44
	xor	esi, esi
	mov	rdi, rbx
	mov	QWORD PTR 8[rbp], rax
	call	memset@PLT
	pop	rax
	.cfi_def_cfa_offset 88
	xor	eax, eax
	pop	rdx
	.cfi_def_cfa_offset 80
	test	r13d, r13d
	je	.L2
	mov	rcx, QWORD PTR 8[rsp]
	mov	edx, DWORD PTR [rcx]
	cmp	edx, 13184
	je	.L3
	cmp	edx, 13200
	je	.L22
.L2:
	mov	DWORD PTR [rbx], eax
	lea	eax, -128[r15]
	mov	DWORD PTR 4[rbx], r14d
	cmp	eax, 17
	ja	.L4
	lea	rdx, .L6[rip]
	movsx	rax, DWORD PTR [rdx+rax*4]
	add	rax, rdx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L6:
	.long	.L15-.L6
	.long	.L12-.L6
	.long	.L12-.L6
	.long	.L12-.L6
	.long	.L14-.L6
	.long	.L13-.L6
	.long	.L13-.L6
	.long	.L12-.L6
	.long	.L11-.L6
	.long	.L7-.L6
	.long	.L7-.L6
	.long	.L7-.L6
	.long	.L10-.L6
	.long	.L9-.L6
	.long	.L8-.L6
	.long	.L8-.L6
	.long	.L7-.L6
	.long	.L5-.L6
	.text
	.p2align 4,,10
	.p2align 3
.L22:
	mov	eax, DWORD PTR 88[rsp]
	mov	esi, 232
	lea	edi, 6[rax]
	call	ceil_quot@PLT
	mov	ecx, DWORD PTR 88[rsp]
	mov	esi, 34
	lea	eax, 3[rax+rax*2]
	lea	edi, [rcx+rax*2]
	call	ceil_quot@PLT
	mov	r8d, eax
	lea	eax, -1[r13]
	lea	edx, 19[r8]
	imul	eax, edx
	add	eax, 49
	shr	eax, 3
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L12:
	mov	eax, DWORD PTR 88[rsp]
	mov	DWORD PTR 8[rbx], eax
	movabs	rax, 4294967297
	mov	QWORD PTR 36[rbx], rax
.L16:
	mov	rcx, QWORD PTR 8[rsp]
	mov	eax, r12d
	xor	edx, edx
	lea	rdi, 24[rbx]
	div	DWORD PTR 4[rcx]
	mov	esi, eax
	call	set_ch_t@PLT
	mov	rax, QWORD PTR 24[rbx]
	mov	DWORD PTR 12[rbx], r13d
	mov	QWORD PTR 16[rbx], rax
	add	rsp, 24
	.cfi_remember_state
	.cfi_def_cfa_offset 56
	pop	rbx
	.cfi_def_cfa_offset 48
	pop	rbp
	.cfi_def_cfa_offset 40
	pop	r12
	.cfi_def_cfa_offset 32
	pop	r13
	.cfi_def_cfa_offset 24
	pop	r14
	.cfi_def_cfa_offset 16
	pop	r15
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L7:
	.cfi_restore_state
	mov	eax, DWORD PTR 88[rsp]
	mov	DWORD PTR 8[rbx], eax
	movabs	rax, 4294967302
	mov	QWORD PTR 36[rbx], rax
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L3:
	mov	eax, DWORD PTR 88[rsp]
	mov	esi, 32
	lea	edi, 12[rax]
	call	ceil_quot@PLT
	lea	edx, -1[r13]
	add	eax, 15
	imul	edx, eax
	lea	eax, 39[rdx]
	mov	rdx, rax
	imul	rax, rax, 613566757
	shr	rax, 32
	sub	edx, eax
	shr	edx
	add	eax, edx
	shr	eax, 2
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L8:
	mov	eax, DWORD PTR 88[rsp]
	mov	DWORD PTR 8[rbx], eax
	movabs	rax, 4294967318
	mov	QWORD PTR 36[rbx], rax
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L13:
	mov	eax, DWORD PTR 88[rsp]
	mov	DWORD PTR 8[rbx], eax
	movabs	rax, 4294967299
	mov	QWORD PTR 36[rbx], rax
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L14:
	movabs	rax, 12884901891
	mov	QWORD PTR 32[rbx], rax
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L10:
	movabs	rax, 94489280515
	mov	QWORD PTR 32[rbx], rax
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L9:
	mov	DWORD PTR 36[rbx], 6
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L5:
	mov	eax, DWORD PTR 88[rsp]
	mov	DWORD PTR 8[rbx], eax
	movabs	rax, 4294967307
	mov	QWORD PTR 36[rbx], rax
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L15:
	movabs	rax, 12884901889
	lea	r10d, 1[r14]
	mov	QWORD PTR 32[rbx], rax
	mov	DWORD PTR 4[rbx], r10d
	jmp	.L16
	.p2align 4,,10
	.p2align 3
.L11:
	movabs	rax, 94489280515
	lea	r10d, 1[r14]
	mov	QWORD PTR 32[rbx], rax
	mov	DWORD PTR 4[rbx], r10d
	jmp	.L16
.L4:
	mov	rsi, QWORD PTR 80[rsp]
	mov	edi, DWORD PTR DBF_ERR[rip]
	mov	ecx, r15d
	xor	eax, eax
	lea	rdx, .LC1[rip]
	call	DBF_DEV_EVENT@PLT
	jmp	.L16
	.cfi_endproc
.LFE0:
	.size	locate_record, .-locate_record
	.comm	DBF_INFO,4,4
	.comm	DBF_ERR,4,4
	.comm	DASD_ECKD_CCW_LOCATE_RECORD,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.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, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_dasd_eckd.c_locate_record.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	"Locate: trk %d, rec %d, no_rec %d, cmd %d, reclen %"
	.ascii	"d\000"
	.align	2
.LC1:
	.ascii	"unknown locate record opcode 0x%x\000"
	.global	__aeabi_uidivmod
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	locate_record, %function
locate_record:
	@ args = 16, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov	r7, r2
	sub	sp, sp, #20
	mov	r5, r0
	mov	r4, r1
	ldr	r0, [sp, #68]
	ldr	r1, [sp, #60]
	ldr	r8, [sp, #56]
	ldr	r9, [sp, #64]
	ldr	r2, .L22
	str	r3, [sp]
	str	r1, [sp, #8]
	str	r8, [sp, #4]
	str	r0, [sp, #12]
	mov	r6, r3
	mov	r1, r9
	mov	r3, r7
	ldr	r0, [r2]
	ldr	r2, .L22+4
	mov	r10, #0
	ldr	fp, [r9]
	bl	DBF_DEV_EVENT
	mov	r3, #16
	ldr	r2, .L22+8
	mov	r0, r4
	ldr	r2, [r2]
	str	r10, [r5, #8]
	str	r2, [r5, #12]
	str	r3, [r5]
	bl	__pa
	mov	r1, r10
	str	r0, [r5, #4]
	mov	r2, #44
	mov	r0, r4
	bl	memset
	cmp	r6, r10
	moveq	r1, r6
	beq	.L2
	ldr	r3, [fp]
	cmp	r3, #13184
	beq	.L3
	ldr	r2, .L22+12
	cmp	r3, r2
	movne	r1, r10
	beq	.L21
.L2:
	ldr	r3, [sp, #60]
	stm	r4, {r1, r8}
	sub	r3, r3, #128
	cmp	r3, #17
	ldrls	pc, [pc, r3, asl #2]
	b	.L4
.L6:
	.word	.L15
	.word	.L12
	.word	.L12
	.word	.L12
	.word	.L14
	.word	.L13
	.word	.L13
	.word	.L12
	.word	.L11
	.word	.L7
	.word	.L7
	.word	.L7
	.word	.L10
	.word	.L9
	.word	.L8
	.word	.L8
	.word	.L7
	.word	.L5
.L21:
	ldr	r3, [sp, #68]
	mov	r1, #232
	add	r0, r3, #6
	bl	ceil_quot
	ldr	r3, [sp, #68]
	add	r0, r0, #1
	add	r0, r0, r0, lsl #1
	mov	r1, #34
	add	r0, r3, r0, lsl #1
	bl	ceil_quot
	sub	r1, r6, #1
	add	r0, r0, #19
	mul	r1, r0, r1
	add	r1, r1, #49
	lsr	r1, r1, #3
	b	.L2
.L12:
	mov	r3, #1
	ldr	r2, [sp, #68]
	str	r3, [r4, #40]
	str	r2, [r4, #8]
	str	r3, [r4, #36]
.L16:
	ldr	r1, [fp, #4]
	mov	r0, r7
	bl	__aeabi_uidivmod
	mov	r2, r1
	mov	r1, r0
	add	r0, r4, #24
	bl	set_ch_t
	ldr	r2, [r4, #28]
	ldr	r3, [r4, #24]
	str	r6, [r4, #12]
	str	r2, [r4, #20]
	str	r3, [r4, #16]
	add	sp, sp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L7:
	mov	r2, #1
	mov	r3, #6
	ldr	r1, [sp, #68]
	str	r2, [r4, #40]
	str	r1, [r4, #8]
	str	r3, [r4, #36]
	b	.L16
.L3:
	ldr	r3, [sp, #68]
	mov	r1, #32
	add	r0, r3, #12
	bl	ceil_quot
	sub	r3, r6, #1
	add	r0, r0, #15
	mul	r3, r0, r3
	ldr	r1, .L22+16
	add	r3, r3, #39
	umull	r2, r1, r3, r1
	sub	r3, r3, r1
	add	r1, r1, r3, lsr #1
	lsr	r1, r1, #2
	b	.L2
.L13:
	mov	r2, #1
	mov	r3, #3
	ldr	r1, [sp, #68]
	str	r2, [r4, #40]
	str	r1, [r4, #8]
	str	r3, [r4, #36]
	b	.L16
.L8:
	mov	r2, #1
	mov	r3, #22
	ldr	r1, [sp, #68]
	str	r2, [r4, #40]
	str	r1, [r4, #8]
	str	r3, [r4, #36]
	b	.L16
.L9:
	mov	r3, #6
	str	r3, [r4, #36]
	b	.L16
.L11:
	mov	r2, #3
	mov	r3, #22
	add	r8, r8, #1
	str	r8, [r4, #4]
	str	r2, [r4, #32]
	str	r3, [r4, #36]
	b	.L16
.L5:
	mov	r2, #1
	mov	r3, #11
	ldr	r1, [sp, #68]
	str	r2, [r4, #40]
	str	r1, [r4, #8]
	str	r3, [r4, #36]
	b	.L16
.L15:
	mov	r2, #1
	mov	r3, #3
	add	r8, r8, r2
	str	r8, [r4, #4]
	str	r2, [r4, #32]
	str	r3, [r4, #36]
	b	.L16
.L14:
	mov	r3, #3
	str	r3, [r4, #32]
	str	r3, [r4, #36]
	b	.L16
.L10:
	mov	r2, #3
	mov	r3, #22
	str	r2, [r4, #32]
	str	r3, [r4, #36]
	b	.L16
.L4:
	ldr	r2, .L22+20
	mov	r1, r9
	ldr	r3, [sp, #60]
	ldr	r0, [r2]
	ldr	r2, .L22+24
	bl	DBF_DEV_EVENT
	b	.L16
.L23:
	.align	2
.L22:
	.word	DBF_INFO
	.word	.LC0
	.word	DASD_ECKD_CCW_LOCATE_RECORD
	.word	13200
	.word	613566757
	.word	DBF_ERR
	.word	.LC1
	.size	locate_record, .-locate_record
	.comm	DBF_INFO,4,4
	.comm	DBF_ERR,4,4
	.comm	DASD_ECKD_CCW_LOCATE_RECORD,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
