	.file	"543960.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 32
	.type	crc12tab, @object
	.size	crc12tab, 512
crc12tab:
	.value	0
	.value	2571
	.value	2581
	.value	30
	.value	2601
	.value	34
	.value	60
	.value	2615
	.value	2641
	.value	90
	.value	68
	.value	2639
	.value	120
	.value	2675
	.value	2669
	.value	102
	.value	2721
	.value	170
	.value	180
	.value	2751
	.value	136
	.value	2691
	.value	2717
	.value	150
	.value	240
	.value	2811
	.value	2789
	.value	238
	.value	2777
	.value	210
	.value	204
	.value	2759
	.value	2881
	.value	330
	.value	340
	.value	2911
	.value	360
	.value	2915
	.value	2941
	.value	374
	.value	272
	.value	2843
	.value	2821
	.value	270
	.value	2873
	.value	306
	.value	300
	.value	2855
	.value	480
	.value	3051
	.value	3061
	.value	510
	.value	3017
	.value	450
	.value	476
	.value	3031
	.value	2993
	.value	442
	.value	420
	.value	2991
	.value	408
	.value	2963
	.value	2957
	.value	390
	.value	2177
	.value	650
	.value	660
	.value	2207
	.value	680
	.value	2211
	.value	2237
	.value	694
	.value	720
	.value	2267
	.value	2245
	.value	718
	.value	2297
	.value	754
	.value	748
	.value	2279
	.value	544
	.value	2091
	.value	2101
	.value	574
	.value	2057
	.value	514
	.value	540
	.value	2071
	.value	2161
	.value	634
	.value	612
	.value	2159
	.value	600
	.value	2131
	.value	2125
	.value	582
	.value	960
	.value	2507
	.value	2517
	.value	990
	.value	2537
	.value	994
	.value	1020
	.value	2551
	.value	2449
	.value	922
	.value	900
	.value	2447
	.value	952
	.value	2483
	.value	2477
	.value	934
	.value	2401
	.value	874
	.value	884
	.value	2431
	.value	840
	.value	2371
	.value	2397
	.value	854
	.value	816
	.value	2363
	.value	2341
	.value	814
	.value	2329
	.value	786
	.value	780
	.value	2311
	.value	3841
	.value	1290
	.value	1300
	.value	3871
	.value	1320
	.value	3875
	.value	3901
	.value	1334
	.value	1360
	.value	3931
	.value	3909
	.value	1358
	.value	3961
	.value	1394
	.value	1388
	.value	3943
	.value	1440
	.value	4011
	.value	4021
	.value	1470
	.value	3977
	.value	1410
	.value	1436
	.value	3991
	.value	4081
	.value	1530
	.value	1508
	.value	4079
	.value	1496
	.value	4051
	.value	4045
	.value	1478
	.value	1088
	.value	3659
	.value	3669
	.value	1118
	.value	3689
	.value	1122
	.value	1148
	.value	3703
	.value	3601
	.value	1050
	.value	1028
	.value	3599
	.value	1080
	.value	3635
	.value	3629
	.value	1062
	.value	3809
	.value	1258
	.value	1268
	.value	3839
	.value	1224
	.value	3779
	.value	3805
	.value	1238
	.value	1200
	.value	3771
	.value	3749
	.value	1198
	.value	3737
	.value	1170
	.value	1164
	.value	3719
	.value	1920
	.value	3467
	.value	3477
	.value	1950
	.value	3497
	.value	1954
	.value	1980
	.value	3511
	.value	3537
	.value	2010
	.value	1988
	.value	3535
	.value	2040
	.value	3571
	.value	3565
	.value	2022
	.value	3361
	.value	1834
	.value	1844
	.value	3391
	.value	1800
	.value	3331
	.value	3357
	.value	1814
	.value	1904
	.value	3451
	.value	3429
	.value	1902
	.value	3417
	.value	1874
	.value	1868
	.value	3399
	.value	3265
	.value	1738
	.value	1748
	.value	3295
	.value	1768
	.value	3299
	.value	3325
	.value	1782
	.value	1680
	.value	3227
	.value	3205
	.value	1678
	.value	3257
	.value	1714
	.value	1708
	.value	3239
	.value	1632
	.value	3179
	.value	3189
	.value	1662
	.value	3145
	.value	1602
	.value	1628
	.value	3159
	.value	3121
	.value	1594
	.value	1572
	.value	3119
	.value	1560
	.value	3091
	.value	3085
	.value	1542
	.text
	.globl	crc12
	.type	crc12, @function
crc12:
.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	DWORD PTR -28[rbp], esi
	mov	WORD PTR -2[rbp], 0
	jmp	.L2
.L3:
	movzx	eax, WORD PTR -2[rbp]
	shr	ax, 8
	mov	ecx, eax
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	sal	eax, 4
	or	ecx, eax
	movzx	eax, WORD PTR -2[rbp]
	movzx	eax, al
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, crc12tab[rip]
	movzx	eax, WORD PTR [rdx+rax]
	xor	eax, ecx
	mov	WORD PTR -2[rbp], ax
.L2:
	mov	eax, DWORD PTR -28[rbp]
	lea	edx, -1[rax]
	mov	DWORD PTR -28[rbp], edx
	test	eax, eax
	jne	.L3
	movzx	eax, WORD PTR -2[rbp]
	shr	ax, 8
	mov	ecx, eax
	movzx	eax, WORD PTR -2[rbp]
	movzx	eax, al
	cdqe
	lea	rdx, [rax+rax]
	lea	rax, crc12tab[rip]
	movzx	eax, WORD PTR [rdx+rax]
	xor	eax, ecx
	mov	WORD PTR -2[rbp], ax
	movzx	eax, WORD PTR -2[rbp]
	and	ax, 4095
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	crc12, .-crc12
	.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	"543960.c"
	.text
	.section	.rodata
	.align	2
	.type	crc12tab, %object
	.size	crc12tab, 512
crc12tab:
	.short	0
	.short	2571
	.short	2581
	.short	30
	.short	2601
	.short	34
	.short	60
	.short	2615
	.short	2641
	.short	90
	.short	68
	.short	2639
	.short	120
	.short	2675
	.short	2669
	.short	102
	.short	2721
	.short	170
	.short	180
	.short	2751
	.short	136
	.short	2691
	.short	2717
	.short	150
	.short	240
	.short	2811
	.short	2789
	.short	238
	.short	2777
	.short	210
	.short	204
	.short	2759
	.short	2881
	.short	330
	.short	340
	.short	2911
	.short	360
	.short	2915
	.short	2941
	.short	374
	.short	272
	.short	2843
	.short	2821
	.short	270
	.short	2873
	.short	306
	.short	300
	.short	2855
	.short	480
	.short	3051
	.short	3061
	.short	510
	.short	3017
	.short	450
	.short	476
	.short	3031
	.short	2993
	.short	442
	.short	420
	.short	2991
	.short	408
	.short	2963
	.short	2957
	.short	390
	.short	2177
	.short	650
	.short	660
	.short	2207
	.short	680
	.short	2211
	.short	2237
	.short	694
	.short	720
	.short	2267
	.short	2245
	.short	718
	.short	2297
	.short	754
	.short	748
	.short	2279
	.short	544
	.short	2091
	.short	2101
	.short	574
	.short	2057
	.short	514
	.short	540
	.short	2071
	.short	2161
	.short	634
	.short	612
	.short	2159
	.short	600
	.short	2131
	.short	2125
	.short	582
	.short	960
	.short	2507
	.short	2517
	.short	990
	.short	2537
	.short	994
	.short	1020
	.short	2551
	.short	2449
	.short	922
	.short	900
	.short	2447
	.short	952
	.short	2483
	.short	2477
	.short	934
	.short	2401
	.short	874
	.short	884
	.short	2431
	.short	840
	.short	2371
	.short	2397
	.short	854
	.short	816
	.short	2363
	.short	2341
	.short	814
	.short	2329
	.short	786
	.short	780
	.short	2311
	.short	3841
	.short	1290
	.short	1300
	.short	3871
	.short	1320
	.short	3875
	.short	3901
	.short	1334
	.short	1360
	.short	3931
	.short	3909
	.short	1358
	.short	3961
	.short	1394
	.short	1388
	.short	3943
	.short	1440
	.short	4011
	.short	4021
	.short	1470
	.short	3977
	.short	1410
	.short	1436
	.short	3991
	.short	4081
	.short	1530
	.short	1508
	.short	4079
	.short	1496
	.short	4051
	.short	4045
	.short	1478
	.short	1088
	.short	3659
	.short	3669
	.short	1118
	.short	3689
	.short	1122
	.short	1148
	.short	3703
	.short	3601
	.short	1050
	.short	1028
	.short	3599
	.short	1080
	.short	3635
	.short	3629
	.short	1062
	.short	3809
	.short	1258
	.short	1268
	.short	3839
	.short	1224
	.short	3779
	.short	3805
	.short	1238
	.short	1200
	.short	3771
	.short	3749
	.short	1198
	.short	3737
	.short	1170
	.short	1164
	.short	3719
	.short	1920
	.short	3467
	.short	3477
	.short	1950
	.short	3497
	.short	1954
	.short	1980
	.short	3511
	.short	3537
	.short	2010
	.short	1988
	.short	3535
	.short	2040
	.short	3571
	.short	3565
	.short	2022
	.short	3361
	.short	1834
	.short	1844
	.short	3391
	.short	1800
	.short	3331
	.short	3357
	.short	1814
	.short	1904
	.short	3451
	.short	3429
	.short	1902
	.short	3417
	.short	1874
	.short	1868
	.short	3399
	.short	3265
	.short	1738
	.short	1748
	.short	3295
	.short	1768
	.short	3299
	.short	3325
	.short	1782
	.short	1680
	.short	3227
	.short	3205
	.short	1678
	.short	3257
	.short	1714
	.short	1708
	.short	3239
	.short	1632
	.short	3179
	.short	3189
	.short	1662
	.short	3145
	.short	1602
	.short	1628
	.short	3159
	.short	3121
	.short	1594
	.short	1572
	.short	3119
	.short	1560
	.short	3091
	.short	3085
	.short	1542
	.text
	.align	2
	.global	crc12
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc12, %function
crc12:
	@ 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
	strh	r3, [fp, #-6]	@ movhi
	b	.L2
.L3:
	ldrh	r3, [fp, #-6]
	lsr	r3, r3, #8
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-16]
	add	r1, r3, #1
	str	r1, [fp, #-16]
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #4
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldrh	r3, [fp, #-6]
	and	r3, r3, #255
	ldr	r1, .L5
	lsl	r3, r3, #1
	add	r3, r1, r3
	ldrh	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-6]	@ movhi
.L2:
	ldr	r3, [fp, #-20]
	sub	r2, r3, #1
	str	r2, [fp, #-20]
	cmp	r3, #0
	bne	.L3
	ldrh	r3, [fp, #-6]
	lsr	r3, r3, #8
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldrh	r3, [fp, #-6]
	and	r3, r3, #255
	ldr	r1, .L5
	lsl	r3, r3, #1
	add	r3, r1, r3
	ldrh	r3, [r3]
	eor	r3, r3, r2
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]	@ movhi
	lsl	r3, r3, #20
	lsr	r3, r3, #20
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L6:
	.align	2
.L5:
	.word	crc12tab
	.size	crc12, .-crc12
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
