	.file	"extr_intercept.c_inject_prog_on_prog_intercept.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.type	inject_prog_on_prog_intercept, @function
inject_prog_on_prog_intercept:
.LFB0:
	.cfi_startproc
	endbr64
	sub	rsp, 72
	.cfi_def_cfa_offset 80
	mov	rdx, QWORD PTR [rdi]
	mov	esi, DWORD PTR PGM_PER[rip]
	pxor	xmm0, xmm0
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR 56[rsp], rax
	xor	eax, eax
	mov	eax, DWORD PTR KVM_S390_PGM_FLAGS_NO_REWIND[rip]
	movaps	XMMWORD PTR [rsp], xmm0
	mov	ecx, DWORD PTR [rdx]
	mov	DWORD PTR 40[rsp], 0
	mov	DWORD PTR 44[rsp], eax
	mov	eax, esi
	not	eax
	mov	DWORD PTR [rsp], ecx
	and	eax, ecx
	movaps	XMMWORD PTR 16[rsp], xmm0
	mov	QWORD PTR 32[rsp], 0
	add	eax, -128
	cmp	eax, 25
	ja	.L2
	lea	r8, .L4[rip]
	movsx	rax, DWORD PTR [r8+rax*4]
	add	rax, r8
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L4:
	.long	.L7-.L4
	.long	.L3-.L4
	.long	.L6-.L4
	.long	.L3-.L4
	.long	.L6-.L4
	.long	.L6-.L4
	.long	.L6-.L4
	.long	.L9-.L4
	.long	.L3-.L4
	.long	.L6-.L4
	.long	.L8-.L4
	.long	.L3-.L4
	.long	.L3-.L4
	.long	.L3-.L4
	.long	.L3-.L4
	.long	.L3-.L4
	.long	.L16-.L4
	.long	.L7-.L4
	.long	.L3-.L4
	.long	.L16-.L4
	.long	.L16-.L4
	.long	.L16-.L4
	.long	.L6-.L4
	.long	.L16-.L4
	.long	.L16-.L4
	.long	.L3-.L4
	.text
	.p2align 4,,10
	.p2align 3
.L3:
	mov	eax, DWORD PTR 24[rdx]
	mov	DWORD PTR 24[rsp], eax
	.p2align 4,,10
	.p2align 3
.L2:
	test	ecx, esi
	je	.L10
	mov	eax, DWORD PTR 16[rdx]
	mov	DWORD PTR 16[rsp], eax
	mov	eax, DWORD PTR 12[rdx]
	mov	DWORD PTR 12[rsp], eax
	mov	eax, DWORD PTR 8[rdx]
	mov	DWORD PTR 8[rsp], eax
	mov	eax, DWORD PTR 4[rdx]
	mov	DWORD PTR 4[rsp], eax
.L10:
	mov	rsi, rsp
	call	kvm_s390_inject_prog_irq@PLT
	mov	rcx, QWORD PTR 56[rsp]
	xor	rcx, QWORD PTR fs:40
	jne	.L18
	add	rsp, 72
	.cfi_remember_state
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9:
	.cfi_restore_state
	mov	eax, DWORD PTR 24[rdx]
	mov	DWORD PTR 24[rsp], eax
.L16:
	mov	eax, DWORD PTR 20[rdx]
	mov	DWORD PTR 20[rsp], eax
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L6:
	mov	eax, DWORD PTR 24[rdx]
	mov	DWORD PTR 24[rsp], eax
	mov	eax, DWORD PTR 20[rdx]
	mov	DWORD PTR 20[rsp], eax
	mov	eax, DWORD PTR 36[rdx]
	mov	DWORD PTR 40[rsp], eax
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L7:
	mov	eax, DWORD PTR 28[rdx]
	mov	DWORD PTR 28[rsp], eax
	jmp	.L2
	.p2align 4,,10
	.p2align 3
.L8:
	mov	eax, DWORD PTR 32[rdx]
	mov	DWORD PTR 36[rsp], eax
	mov	eax, DWORD PTR 24[rdx]
	mov	DWORD PTR 32[rsp], eax
	jmp	.L2
.L18:
	call	__stack_chk_fail@PLT
	.cfi_endproc
.LFE0:
	.size	inject_prog_on_prog_intercept, .-inject_prog_on_prog_intercept
	.comm	PGM_PER,4,4
	.comm	KVM_S390_PGM_FLAGS_NO_REWIND,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_intercept.c_inject_prog_on_prog_intercept.c"
	.text
	.section	.rodata.cst4,"aM",%progbits,4
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	inject_prog_on_prog_intercept, %function
inject_prog_on_prog_intercept:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, lr}
	mov	r4, r0
	sub	sp, sp, #56
	ldr	r3, .L18
	mov	r2, #40
	mov	r1, #0
	add	r0, sp, #8
	ldr	r3, [r3]
	str	r3, [sp, #52]
	mov	r3,#0
	bl	memset
	ldr	r2, .L18+4
	ldr	r3, [r4]
	ldr	r0, [r2]
	ldr	r1, [r3]
	ldr	ip, .L18+8
	bic	r2, r1, r0
	ldr	ip, [ip]
	sub	r2, r2, #128
	str	r1, [sp, #4]
	str	ip, [sp, #48]
	cmp	r2, #25
	ldrls	pc, [pc, r2, asl #2]
	b	.L2
.L4:
	.word	.L7
	.word	.L3
	.word	.L6
	.word	.L3
	.word	.L6
	.word	.L6
	.word	.L6
	.word	.L9
	.word	.L3
	.word	.L6
	.word	.L8
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L3
	.word	.L5
	.word	.L7
	.word	.L3
	.word	.L5
	.word	.L5
	.word	.L5
	.word	.L6
	.word	.L5
	.word	.L5
	.word	.L3
.L3:
	ldr	r2, [r3, #24]
	str	r2, [sp, #28]
.L2:
	tst	r1, r0
	beq	.L10
	ldr	r2, [r3, #8]
	ldr	r1, [r3, #12]
	ldr	r0, [r3, #16]
	ldr	r3, [r3, #4]
	str	r0, [sp, #20]
	str	r1, [sp, #16]
	str	r2, [sp, #12]
	str	r3, [sp, #8]
.L10:
	mov	r0, r4
	add	r1, sp, #4
	bl	kvm_s390_inject_prog_irq
	ldr	r3, .L18
	ldr	r2, [r3]
	ldr	r3, [sp, #52]
	eors	r2, r3, r2
	mov	r3, #0
	bne	.L17
	add	sp, sp, #56
	@ sp needed
	pop	{r4, pc}
.L6:
	ldr	r2, [r3, #24]
	ldr	ip, [r3, #20]
	str	r2, [sp, #28]
	ldr	r2, [r3, #36]
	str	ip, [sp, #24]
	str	r2, [sp, #44]
	b	.L2
.L5:
	ldr	r2, [r3, #20]
	str	r2, [sp, #24]
	b	.L2
.L7:
	ldr	r2, [r3, #28]
	str	r2, [sp, #32]
	b	.L2
.L8:
	ldr	ip, [r3, #32]
	ldr	r2, [r3, #24]
	str	ip, [sp, #40]
	str	r2, [sp, #36]
	b	.L2
.L9:
	ldr	r2, [r3, #20]
	ldr	ip, [r3, #24]
	str	r2, [sp, #24]
	str	ip, [sp, #28]
	b	.L2
.L17:
	bl	__stack_chk_fail
.L19:
	.align	2
.L18:
	.word	.LC0
	.word	PGM_PER
	.word	KVM_S390_PGM_FLAGS_NO_REWIND
	.size	inject_prog_on_prog_intercept, .-inject_prog_on_prog_intercept
	.comm	PGM_PER,4,4
	.comm	KVM_S390_PGM_FLAGS_NO_REWIND,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
