	.file	"584049.c"
	.intel_syntax noprefix
	.text
	.globl	globalState
	.section	.data.rel.local,"aw"
	.align 8
	.type	globalState, @object
	.size	globalState, 8
globalState:
	.quad	global_state
	.text
	.globl	__VERIFIER_nondet_int
	.type	__VERIFIER_nondet_int, @function
__VERIFIER_nondet_int:
.LFB0:
	.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 -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	__VERIFIER_nondet_int, .-__VERIFIER_nondet_int
	.globl	__bss_start
	.bss
	.align 32
	.type	__bss_start, @object
	.size	__bss_start, 32
__bss_start:
	.zero	32
	.globl	STATE_REG_RAX
	.align 4
	.type	STATE_REG_RAX, @object
	.size	STATE_REG_RAX, 4
STATE_REG_RAX:
	.zero	4
	.globl	STATE_REG_RBX
	.align 4
	.type	STATE_REG_RBX, @object
	.size	STATE_REG_RBX, 4
STATE_REG_RBX:
	.zero	4
	.globl	STATE_REG_RCX
	.align 4
	.type	STATE_REG_RCX, @object
	.size	STATE_REG_RCX, 4
STATE_REG_RCX:
	.zero	4
	.globl	STATE_REG_RDX
	.align 4
	.type	STATE_REG_RDX, @object
	.size	STATE_REG_RDX, 4
STATE_REG_RDX:
	.zero	4
	.globl	STATE_REG_RSI
	.align 4
	.type	STATE_REG_RSI, @object
	.size	STATE_REG_RSI, 4
STATE_REG_RSI:
	.zero	4
	.globl	STATE_REG_RDI
	.align 4
	.type	STATE_REG_RDI, @object
	.size	STATE_REG_RDI, 4
STATE_REG_RDI:
	.zero	4
	.globl	STATE_REG_RSP
	.align 4
	.type	STATE_REG_RSP, @object
	.size	STATE_REG_RSP, 4
STATE_REG_RSP:
	.zero	4
	.globl	STATE_REG_RBP
	.align 4
	.type	STATE_REG_RBP, @object
	.size	STATE_REG_RBP, 4
STATE_REG_RBP:
	.zero	4
	.globl	STATE_REG_R8
	.align 4
	.type	STATE_REG_R8, @object
	.size	STATE_REG_R8, 4
STATE_REG_R8:
	.zero	4
	.globl	STATE_REG_R9
	.align 4
	.type	STATE_REG_R9, @object
	.size	STATE_REG_R9, 4
STATE_REG_R9:
	.zero	4
	.globl	STATE_REG_R10
	.align 4
	.type	STATE_REG_R10, @object
	.size	STATE_REG_R10, 4
STATE_REG_R10:
	.zero	4
	.globl	STATE_REG_R11
	.align 4
	.type	STATE_REG_R11, @object
	.size	STATE_REG_R11, 4
STATE_REG_R11:
	.zero	4
	.globl	STATE_REG_R12
	.align 4
	.type	STATE_REG_R12, @object
	.size	STATE_REG_R12, 4
STATE_REG_R12:
	.zero	4
	.globl	STATE_REG_R13
	.align 4
	.type	STATE_REG_R13, @object
	.size	STATE_REG_R13, 4
STATE_REG_R13:
	.zero	4
	.globl	STATE_REG_R14
	.align 4
	.type	STATE_REG_R14, @object
	.size	STATE_REG_R14, 4
STATE_REG_R14:
	.zero	4
	.globl	STATE_REG_R15
	.align 4
	.type	STATE_REG_R15, @object
	.size	STATE_REG_R15, 4
STATE_REG_R15:
	.zero	4
	.globl	STATE_REG_IP
	.align 4
	.type	STATE_REG_IP, @object
	.size	STATE_REG_IP, 4
STATE_REG_IP:
	.zero	4
	.text
	.type	llvm_OC_ctpop_OC_i32, @function
llvm_OC_ctpop_OC_i32:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -4[rbp], 0
	jmp	.L4
.L6:
	mov	eax, DWORD PTR -20[rbp]
	and	eax, 1
	test	eax, eax
	je	.L5
	add	DWORD PTR -4[rbp], 1
.L5:
	sar	DWORD PTR -20[rbp]
.L4:
	cmp	DWORD PTR -20[rbp], 0
	jne	.L6
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	llvm_OC_ctpop_OC_i32, .-llvm_OC_ctpop_OC_i32
	.type	llvm_select_u64, @function
llvm_select_u64:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	DWORD PTR -28[rbp], edx
	cmp	DWORD PTR -20[rbp], 0
	je	.L9
	mov	eax, DWORD PTR -24[rbp]
	jmp	.L10
.L9:
	mov	eax, DWORD PTR -28[rbp]
.L10:
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	llvm_select_u64, .-llvm_select_u64
	.type	llvm_add_u32, @function
llvm_add_u32:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	llvm_add_u32, .-llvm_add_u32
	.type	llvm_add_u64, @function
llvm_add_u64:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	edx, DWORD PTR -20[rbp]
	mov	eax, DWORD PTR -24[rbp]
	add	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	llvm_add_u64, .-llvm_add_u64
	.type	llvm_sub_u32, @function
llvm_sub_u32:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -20[rbp]
	sub	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	llvm_sub_u32, .-llvm_sub_u32
	.type	llvm_lshr_u32, @function
llvm_lshr_u32:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -24[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	llvm_lshr_u32, .-llvm_lshr_u32
	.type	llvm_lshr_u64, @function
llvm_lshr_u64:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -24[rbp]
	mov	edx, DWORD PTR -20[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	llvm_lshr_u64, .-llvm_lshr_u64
	.type	llvm_and_u8, @function
llvm_and_u8:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -20[rbp]
	and	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	llvm_and_u8, .-llvm_and_u8
	.type	llvm_xor_u8, @function
llvm_xor_u8:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	mov	eax, DWORD PTR -20[rbp]
	xor	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	llvm_xor_u8, .-llvm_xor_u8
	.globl	global_state
	.bss
	.align 32
	.type	global_state, @object
	.size	global_state, 1704
global_state:
	.zero	1704
	.text
	.globl	main
	.type	main, @function
main:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 864
	mov	rax, QWORD PTR globalState[rip]
	mov	QWORD PTR -80[rbp], rax
	mov	eax, DWORD PTR STATE_REG_RBP[rip]
	mov	DWORD PTR -836[rbp], eax
	mov	eax, DWORD PTR STATE_REG_RSP[rip]
	mov	DWORD PTR -832[rbp], eax
	mov	eax, DWORD PTR -832[rbp]
	sub	eax, 8
	mov	DWORD PTR -828[rbp], eax
	mov	eax, DWORD PTR -828[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -836[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -828[rbp]
	mov	DWORD PTR STATE_REG_RBP[rip], eax
	mov	eax, DWORD PTR -832[rbp]
	sub	eax, 24
	mov	DWORD PTR -824[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1040
	mov	QWORD PTR -72[rbp], rax
	cmp	DWORD PTR -828[rbp], 15
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -824[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -820[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1048
	mov	QWORD PTR -64[rbp], rax
	mov	eax, DWORD PTR -820[rbp]
	and	eax, 1
	mov	DWORD PTR -816[rbp], eax
	mov	eax, DWORD PTR -816[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1056
	mov	QWORD PTR -56[rbp], rax
	mov	eax, DWORD PTR -828[rbp]
	xor	eax, 16
	xor	eax, DWORD PTR -824[rbp]
	sar	eax, 4
	mov	DWORD PTR -812[rbp], eax
	mov	eax, DWORD PTR -812[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1064
	mov	QWORD PTR -48[rbp], rax
	cmp	DWORD PTR -824[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	edx, 63
	mov	eax, DWORD PTR -824[rbp]
	mov	ecx, edx
	sar	eax, cl
	mov	DWORD PTR -808[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1072
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -808[rbp]
	mov	DWORD PTR [rax], edx
	mov	edx, 63
	mov	eax, DWORD PTR -828[rbp]
	mov	ecx, edx
	sar	eax, cl
	mov	DWORD PTR -804[rbp], eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 1088
	mov	QWORD PTR -32[rbp], rax
	mov	eax, DWORD PTR -808[rbp]
	xor	eax, DWORD PTR -804[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -804[rbp]
	add	eax, edx
	mov	DWORD PTR -800[rbp], eax
	cmp	DWORD PTR -800[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	DWORD PTR STATE_REG_RAX[rip], 0
	mov	eax, DWORD PTR -832[rbp]
	sub	eax, 32
	mov	DWORD PTR -796[rbp], eax
	mov	eax, DWORD PTR -796[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -792[rbp]
	add	eax, 22
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -796[rbp]
	mov	DWORD PTR STATE_REG_RSP[rip], eax
	mov	eax, 0
	call	__VERIFIER_nondet_int
	mov	DWORD PTR STATE_REG_RAX[rip], eax
	mov	eax, DWORD PTR STATE_REG_RBP[rip]
	mov	DWORD PTR -788[rbp], eax
	mov	eax, DWORD PTR STATE_REG_RAX[rip]
	mov	DWORD PTR -784[rbp], eax
	mov	eax, DWORD PTR STATE_REG_IP[rip]
	mov	DWORD PTR -780[rbp], eax
	mov	eax, DWORD PTR -788[rbp]
	sub	eax, 4
	mov	DWORD PTR -776[rbp], eax
	mov	eax, DWORD PTR -776[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -784[rbp]
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR STATE_REG_RAX[rip], 0
	mov	eax, DWORD PTR STATE_REG_RSP[rip]
	mov	DWORD PTR -772[rbp], eax
	mov	eax, DWORD PTR -772[rbp]
	sub	eax, 8
	mov	DWORD PTR -768[rbp], eax
	mov	eax, DWORD PTR -768[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -780[rbp]
	add	eax, 13
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -768[rbp]
	mov	DWORD PTR STATE_REG_RSP[rip], eax
	mov	eax, 0
	call	__VERIFIER_nondet_int
	mov	DWORD PTR STATE_REG_RAX[rip], eax
	mov	eax, DWORD PTR STATE_REG_RBP[rip]
	mov	DWORD PTR -764[rbp], eax
	mov	eax, DWORD PTR STATE_REG_RAX[rip]
	mov	DWORD PTR -760[rbp], eax
	mov	eax, DWORD PTR STATE_REG_IP[rip]
	mov	DWORD PTR -756[rbp], eax
	mov	eax, DWORD PTR -764[rbp]
	sub	eax, 8
	mov	DWORD PTR -752[rbp], eax
	mov	eax, DWORD PTR -752[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -760[rbp]
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR STATE_REG_RAX[rip], 0
	mov	eax, DWORD PTR STATE_REG_RSP[rip]
	mov	DWORD PTR -748[rbp], eax
	mov	eax, DWORD PTR -748[rbp]
	sub	eax, 8
	mov	DWORD PTR -744[rbp], eax
	mov	eax, DWORD PTR -744[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -756[rbp]
	add	eax, 13
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -744[rbp]
	mov	DWORD PTR STATE_REG_RSP[rip], eax
	mov	eax, 0
	call	__VERIFIER_nondet_int
	mov	DWORD PTR STATE_REG_RAX[rip], eax
	mov	eax, DWORD PTR STATE_REG_RBP[rip]
	mov	DWORD PTR -740[rbp], eax
	mov	eax, DWORD PTR STATE_REG_RAX[rip]
	mov	DWORD PTR -736[rbp], eax
	mov	eax, DWORD PTR STATE_REG_IP[rip]
	mov	DWORD PTR -732[rbp], eax
	mov	eax, DWORD PTR -740[rbp]
	sub	eax, 12
	mov	DWORD PTR -728[rbp], eax
	mov	eax, DWORD PTR -728[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -736[rbp]
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR STATE_REG_RAX[rip], 0
	mov	eax, DWORD PTR STATE_REG_RSP[rip]
	mov	DWORD PTR -724[rbp], eax
	mov	eax, DWORD PTR -724[rbp]
	sub	eax, 8
	mov	DWORD PTR -720[rbp], eax
	mov	eax, DWORD PTR -720[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -732[rbp]
	add	eax, 13
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -720[rbp]
	mov	DWORD PTR STATE_REG_RSP[rip], eax
	mov	eax, 0
	call	__VERIFIER_nondet_int
	mov	DWORD PTR STATE_REG_RAX[rip], eax
	mov	eax, DWORD PTR STATE_REG_RBP[rip]
	mov	DWORD PTR -716[rbp], eax
	mov	eax, DWORD PTR STATE_REG_RAX[rip]
	mov	DWORD PTR -712[rbp], eax
	mov	eax, DWORD PTR STATE_REG_IP[rip]
	mov	DWORD PTR -708[rbp], eax
	mov	eax, DWORD PTR -716[rbp]
	sub	eax, 16
	mov	DWORD PTR -704[rbp], eax
	mov	eax, DWORD PTR -704[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -712[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -712[rbp]
	add	eax, 1073741823
	mov	DWORD PTR -700[rbp], eax
	cmp	DWORD PTR -712[rbp], -1073741823
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -700[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -696[rbp], eax
	mov	eax, DWORD PTR -696[rbp]
	and	eax, 1
	mov	DWORD PTR -692[rbp], eax
	mov	eax, DWORD PTR -692[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -700[rbp]
	xor	eax, DWORD PTR -712[rbp]
	sar	eax, 4
	mov	DWORD PTR -688[rbp], eax
	mov	eax, DWORD PTR -688[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -700[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -700[rbp]
	sar	eax, 31
	mov	DWORD PTR -684[rbp], eax
	mov	eax, DWORD PTR -684[rbp]
	mov	DWORD PTR -680[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -680[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -712[rbp]
	sar	eax, 31
	mov	DWORD PTR -676[rbp], eax
	mov	eax, DWORD PTR -684[rbp]
	xor	eax, DWORD PTR -676[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -676[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -672[rbp], eax
	cmp	DWORD PTR -672[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -684[rbp]
	xor	eax, DWORD PTR -676[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -676[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -668[rbp], eax
	cmp	DWORD PTR -680[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -668[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L54
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L54:
	nop
.L27:
	mov	eax, DWORD PTR -712[rbp]
	sub	eax, 1073741823
	mov	DWORD PTR -664[rbp], eax
	cmp	DWORD PTR -712[rbp], 1073741822
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -664[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -660[rbp], eax
	mov	eax, DWORD PTR -660[rbp]
	and	eax, 1
	mov	DWORD PTR -656[rbp], eax
	mov	eax, DWORD PTR -656[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -712[rbp]
	xor	eax, 16
	xor	eax, DWORD PTR -664[rbp]
	sar	eax, 4
	mov	DWORD PTR -652[rbp], eax
	mov	eax, DWORD PTR -652[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -664[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -664[rbp]
	sar	eax, 31
	mov	DWORD PTR -648[rbp], eax
	mov	eax, DWORD PTR -648[rbp]
	mov	DWORD PTR -644[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -644[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -648[rbp]
	xor	eax, DWORD PTR -676[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -676[rbp]
	add	eax, edx
	mov	DWORD PTR -640[rbp], eax
	cmp	DWORD PTR -640[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -648[rbp]
	xor	eax, DWORD PTR -676[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -676[rbp]
	add	eax, edx
	mov	DWORD PTR -636[rbp], eax
	cmp	DWORD PTR -664[rbp], 0
	sete	cl
	cmp	DWORD PTR -644[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -636[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	or	eax, ecx
	test	al, al
	jne	.L55
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L31:
	mov	eax, DWORD PTR -856[rbp]
	mov	DWORD PTR -432[rbp], eax
	mov	eax, DWORD PTR -852[rbp]
	mov	DWORD PTR -428[rbp], eax
	mov	eax, DWORD PTR -428[rbp]
	sub	eax, 4
	mov	DWORD PTR -424[rbp], eax
	mov	eax, DWORD PTR -424[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -420[rbp], eax
	mov	eax, DWORD PTR -428[rbp]
	sub	eax, 8
	mov	DWORD PTR -416[rbp], eax
	mov	eax, DWORD PTR -416[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -412[rbp], eax
	mov	edx, DWORD PTR -412[rbp]
	mov	eax, DWORD PTR -420[rbp]
	mov	esi, edx
	mov	edi, eax
	call	llvm_sub_u32
	mov	DWORD PTR -408[rbp], eax
	mov	eax, DWORD PTR -420[rbp]
	cmp	eax, DWORD PTR -412[rbp]
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -408[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -404[rbp], eax
	mov	eax, DWORD PTR -404[rbp]
	and	eax, 1
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -412[rbp]
	xor	eax, DWORD PTR -420[rbp]
	xor	eax, DWORD PTR -408[rbp]
	sar	eax, 4
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -408[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -408[rbp]
	sar	eax, 31
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -388[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -420[rbp]
	sar	eax, 31
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -412[rbp]
	sar	eax, 31
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	xor	eax, DWORD PTR -384[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -380[rbp]
	xor	eax, DWORD PTR -384[rbp]
	add	eax, edx
	mov	DWORD PTR -376[rbp], eax
	cmp	DWORD PTR -376[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -412[rbp]
	sar	eax, 31
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	xor	eax, DWORD PTR -384[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -372[rbp]
	xor	eax, DWORD PTR -384[rbp]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	cmp	DWORD PTR -388[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -368[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L56
	mov	eax, DWORD PTR -428[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L56:
	nop
.L32:
	mov	eax, DWORD PTR -428[rbp]
	sub	eax, 16
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	mov	DWORD PTR STATE_REG_RDX[rip], eax
	mov	eax, DWORD PTR -428[rbp]
	sub	eax, 12
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -352[rbp], eax
	mov	edx, DWORD PTR -352[rbp]
	mov	eax, DWORD PTR -360[rbp]
	add	eax, edx
	mov	DWORD PTR -348[rbp], eax
	mov	edx, DWORD PTR -348[rbp]
	mov	eax, DWORD PTR -420[rbp]
	mov	esi, edx
	mov	edi, eax
	call	llvm_sub_u32
	mov	DWORD PTR -344[rbp], eax
	mov	eax, DWORD PTR -420[rbp]
	cmp	eax, DWORD PTR -348[rbp]
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -344[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -340[rbp], eax
	mov	eax, DWORD PTR -340[rbp]
	and	eax, 1
	mov	DWORD PTR -336[rbp], eax
	mov	eax, DWORD PTR -336[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -348[rbp]
	xor	eax, DWORD PTR -420[rbp]
	xor	eax, DWORD PTR -344[rbp]
	sar	eax, 4
	mov	DWORD PTR -332[rbp], eax
	mov	eax, DWORD PTR -332[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -344[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -344[rbp]
	sar	eax, 31
	mov	DWORD PTR -328[rbp], eax
	mov	eax, DWORD PTR -328[rbp]
	mov	DWORD PTR -324[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -324[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 31
	mov	DWORD PTR -320[rbp], eax
	mov	eax, DWORD PTR -328[rbp]
	xor	eax, DWORD PTR -384[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -320[rbp]
	xor	eax, DWORD PTR -384[rbp]
	add	eax, edx
	mov	DWORD PTR -316[rbp], eax
	cmp	DWORD PTR -316[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -348[rbp]
	sar	eax, 31
	mov	DWORD PTR -312[rbp], eax
	mov	eax, DWORD PTR -328[rbp]
	xor	eax, DWORD PTR -384[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -312[rbp]
	xor	eax, DWORD PTR -384[rbp]
	add	eax, edx
	mov	DWORD PTR -308[rbp], eax
	cmp	DWORD PTR -344[rbp], 0
	setne	cl
	cmp	DWORD PTR -324[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -308[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	xor	eax, 1
	and	eax, ecx
	test	al, al
	je	.L57
	mov	eax, DWORD PTR -428[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L57:
	nop
.L33:
	mov	DWORD PTR STATE_REG_RAX[rip], 0
	mov	eax, DWORD PTR STATE_REG_RSP[rip]
	mov	DWORD PTR -304[rbp], eax
	mov	eax, DWORD PTR -304[rbp]
	sub	eax, 8
	mov	DWORD PTR -300[rbp], eax
	mov	eax, DWORD PTR -300[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -432[rbp]
	sub	eax, 56
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -300[rbp]
	mov	DWORD PTR STATE_REG_RSP[rip], eax
	mov	eax, 0
	call	__VERIFIER_nondet_int
	mov	DWORD PTR STATE_REG_RAX[rip], eax
	mov	eax, DWORD PTR STATE_REG_RAX[rip]
	mov	DWORD PTR -296[rbp], eax
	mov	eax, DWORD PTR STATE_REG_IP[rip]
	mov	DWORD PTR -292[rbp], eax
	cmp	DWORD PTR -296[rbp], 0
	sete	al
	movzx	eax, al
	mov	edx, 2
	mov	esi, 50
	mov	edi, eax
	call	llvm_select_u64
	mov	DWORD PTR -288[rbp], eax
	mov	eax, DWORD PTR -292[rbp]
	add	eax, 2
	mov	DWORD PTR -284[rbp], eax
	mov	edx, DWORD PTR -284[rbp]
	mov	eax, DWORD PTR -288[rbp]
	add	eax, edx
	mov	DWORD PTR -280[rbp], eax
	mov	eax, DWORD PTR STATE_REG_RBP[rip]
	mov	DWORD PTR -276[rbp], eax
	cmp	DWORD PTR -296[rbp], 0
	je	.L58
	nop
.L34:
	mov	eax, DWORD PTR -276[rbp]
	sub	eax, 12
	mov	DWORD PTR -272[rbp], eax
	mov	eax, DWORD PTR -272[rbp]
	cdqe
	mov	QWORD PTR -24[rbp], rax
	mov	rax, QWORD PTR -24[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -268[rbp], eax
	mov	eax, DWORD PTR -268[rbp]
	sub	eax, 1
	mov	DWORD PTR -264[rbp], eax
	mov	rax, QWORD PTR -24[rbp]
	mov	edx, DWORD PTR -264[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -268[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -264[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -260[rbp], eax
	mov	eax, DWORD PTR -260[rbp]
	and	eax, 1
	mov	DWORD PTR -256[rbp], eax
	mov	eax, DWORD PTR -256[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -264[rbp]
	xor	eax, DWORD PTR -268[rbp]
	sar	eax, 4
	mov	DWORD PTR -252[rbp], eax
	mov	eax, DWORD PTR -252[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -264[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -264[rbp]
	sar	eax, 31
	mov	DWORD PTR -248[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -248[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -268[rbp]
	sar	eax, 31
	mov	DWORD PTR -244[rbp], eax
	mov	eax, DWORD PTR -248[rbp]
	xor	eax, DWORD PTR -244[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -244[rbp]
	add	eax, edx
	mov	DWORD PTR -240[rbp], eax
	cmp	DWORD PTR -240[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -276[rbp]
	sub	eax, 4
	mov	DWORD PTR -236[rbp], eax
	mov	eax, DWORD PTR -236[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -232[rbp], eax
	mov	eax, DWORD PTR -276[rbp]
	sub	eax, 16
	mov	DWORD PTR -228[rbp], eax
	mov	eax, DWORD PTR -228[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -232[rbp]
	mov	DWORD PTR [rdx], eax
	mov	DWORD PTR STATE_REG_RAX[rip], 0
	mov	eax, DWORD PTR STATE_REG_RSP[rip]
	mov	DWORD PTR -224[rbp], eax
	mov	eax, DWORD PTR -224[rbp]
	sub	eax, 8
	mov	DWORD PTR -220[rbp], eax
	mov	eax, DWORD PTR -220[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -280[rbp]
	add	eax, 20
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -220[rbp]
	mov	DWORD PTR STATE_REG_RSP[rip], eax
	mov	eax, 0
	call	__VERIFIER_nondet_int
	mov	DWORD PTR STATE_REG_RAX[rip], eax
	mov	eax, DWORD PTR STATE_REG_RBP[rip]
	mov	DWORD PTR -216[rbp], eax
	mov	eax, DWORD PTR STATE_REG_RAX[rip]
	mov	DWORD PTR -212[rbp], eax
	mov	eax, DWORD PTR STATE_REG_IP[rip]
	mov	DWORD PTR -208[rbp], eax
	mov	eax, DWORD PTR -216[rbp]
	sub	eax, 4
	mov	DWORD PTR -204[rbp], eax
	mov	eax, DWORD PTR -204[rbp]
	cdqe
	mov	rdx, rax
	mov	eax, DWORD PTR -212[rbp]
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -212[rbp]
	add	eax, 1073741823
	mov	DWORD PTR -200[rbp], eax
	cmp	DWORD PTR -212[rbp], -1073741823
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -200[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -196[rbp], eax
	mov	eax, DWORD PTR -196[rbp]
	and	eax, 1
	mov	DWORD PTR -192[rbp], eax
	mov	eax, DWORD PTR -192[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -200[rbp]
	xor	eax, DWORD PTR -212[rbp]
	sar	eax, 4
	mov	DWORD PTR -188[rbp], eax
	mov	eax, DWORD PTR -188[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -200[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -200[rbp]
	sar	eax, 31
	mov	DWORD PTR -184[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	mov	DWORD PTR -180[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -180[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -212[rbp]
	sar	eax, 31
	mov	DWORD PTR -176[rbp], eax
	mov	eax, DWORD PTR -184[rbp]
	xor	eax, DWORD PTR -176[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -176[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -172[rbp], eax
	cmp	DWORD PTR -172[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -184[rbp]
	xor	eax, DWORD PTR -176[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -176[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -168[rbp], eax
	cmp	DWORD PTR -180[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -168[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L59
	mov	eax, DWORD PTR -216[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L59:
	nop
.L36:
	mov	eax, DWORD PTR -212[rbp]
	sub	eax, 1073741823
	mov	DWORD PTR -164[rbp], eax
	cmp	DWORD PTR -212[rbp], 1073741822
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -164[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -160[rbp], eax
	mov	eax, DWORD PTR -160[rbp]
	and	eax, 1
	mov	DWORD PTR -156[rbp], eax
	mov	eax, DWORD PTR -156[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -212[rbp]
	xor	eax, 16
	xor	eax, DWORD PTR -164[rbp]
	sar	eax, 4
	mov	DWORD PTR -152[rbp], eax
	mov	eax, DWORD PTR -152[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -164[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -164[rbp]
	sar	eax, 31
	mov	DWORD PTR -148[rbp], eax
	mov	eax, DWORD PTR -148[rbp]
	mov	DWORD PTR -144[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -144[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -148[rbp]
	xor	eax, DWORD PTR -176[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -176[rbp]
	add	eax, edx
	mov	DWORD PTR -140[rbp], eax
	cmp	DWORD PTR -140[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -148[rbp]
	xor	eax, DWORD PTR -176[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -176[rbp]
	add	eax, edx
	mov	DWORD PTR -136[rbp], eax
	cmp	DWORD PTR -164[rbp], 0
	sete	cl
	cmp	DWORD PTR -144[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -136[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	or	eax, ecx
	movzx	eax, al
	mov	DWORD PTR -132[rbp], eax
	mov	eax, DWORD PTR -132[rbp]
	mov	edx, 2
	mov	esi, 13
	mov	edi, eax
	call	llvm_select_u64
	mov	DWORD PTR -128[rbp], eax
	mov	eax, DWORD PTR -208[rbp]
	add	eax, 19
	mov	DWORD PTR -124[rbp], eax
	mov	edx, DWORD PTR -124[rbp]
	mov	eax, DWORD PTR -128[rbp]
	add	eax, edx
	mov	DWORD PTR -120[rbp], eax
	cmp	DWORD PTR -132[rbp], 0
	je	.L37
	mov	eax, DWORD PTR -120[rbp]
	mov	DWORD PTR -844[rbp], eax
	mov	eax, DWORD PTR -216[rbp]
	mov	DWORD PTR -840[rbp], eax
	jmp	.L38
.L37:
	mov	eax, DWORD PTR -216[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L58:
	nop
.L35:
	mov	eax, DWORD PTR -280[rbp]
	add	eax, 4
	mov	DWORD PTR -116[rbp], eax
	mov	eax, DWORD PTR -276[rbp]
	sub	eax, 8
	mov	DWORD PTR -112[rbp], eax
	mov	eax, DWORD PTR -112[rbp]
	cdqe
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -108[rbp], eax
	mov	eax, DWORD PTR -108[rbp]
	lea	edx, 1[rax]
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -116[rbp]
	mov	DWORD PTR -844[rbp], eax
	mov	eax, DWORD PTR -276[rbp]
	mov	DWORD PTR -840[rbp], eax
	nop
.L38:
	mov	eax, DWORD PTR -844[rbp]
	mov	DWORD PTR -104[rbp], eax
	mov	eax, DWORD PTR -840[rbp]
	mov	DWORD PTR -100[rbp], eax
	mov	eax, DWORD PTR -104[rbp]
	mov	DWORD PTR -856[rbp], eax
	mov	eax, DWORD PTR -100[rbp]
	mov	DWORD PTR -852[rbp], eax
	jmp	.L31
.L61:
	nop
.L39:
	mov	eax, DWORD PTR -716[rbp]
	sub	eax, 4
	mov	DWORD PTR -556[rbp], eax
	mov	eax, DWORD PTR -556[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -552[rbp], eax
	mov	eax, DWORD PTR -552[rbp]
	add	eax, 1073741823
	mov	DWORD PTR -548[rbp], eax
	cmp	DWORD PTR -552[rbp], -1073741823
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -548[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -544[rbp], eax
	mov	eax, DWORD PTR -544[rbp]
	and	eax, 1
	mov	DWORD PTR -540[rbp], eax
	mov	eax, DWORD PTR -540[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -548[rbp]
	xor	eax, DWORD PTR -552[rbp]
	sar	eax, 4
	mov	DWORD PTR -536[rbp], eax
	mov	eax, DWORD PTR -536[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -548[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -548[rbp]
	sar	eax, 31
	mov	DWORD PTR -532[rbp], eax
	mov	eax, DWORD PTR -532[rbp]
	mov	DWORD PTR -528[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -528[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -552[rbp]
	sar	eax, 31
	mov	DWORD PTR -524[rbp], eax
	mov	eax, DWORD PTR -532[rbp]
	xor	eax, DWORD PTR -524[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -524[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -520[rbp], eax
	cmp	DWORD PTR -520[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -532[rbp]
	xor	eax, DWORD PTR -524[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -524[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -516[rbp], eax
	cmp	DWORD PTR -528[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -516[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L60
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L63:
	nop
.L42:
	mov	eax, DWORD PTR -628[rbp]
	sub	eax, 1073741823
	mov	DWORD PTR -588[rbp], eax
	cmp	DWORD PTR -628[rbp], 1073741822
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -588[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -584[rbp], eax
	mov	eax, DWORD PTR -584[rbp]
	and	eax, 1
	mov	DWORD PTR -580[rbp], eax
	mov	eax, DWORD PTR -580[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -628[rbp]
	xor	eax, 16
	xor	eax, DWORD PTR -588[rbp]
	sar	eax, 4
	mov	DWORD PTR -576[rbp], eax
	mov	eax, DWORD PTR -576[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -588[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -588[rbp]
	sar	eax, 31
	mov	DWORD PTR -572[rbp], eax
	mov	eax, DWORD PTR -572[rbp]
	mov	DWORD PTR -568[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -568[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -572[rbp]
	xor	eax, DWORD PTR -600[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -600[rbp]
	add	eax, edx
	mov	DWORD PTR -564[rbp], eax
	cmp	DWORD PTR -564[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -572[rbp]
	xor	eax, DWORD PTR -600[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -600[rbp]
	add	eax, edx
	mov	DWORD PTR -560[rbp], eax
	cmp	DWORD PTR -588[rbp], 0
	sete	cl
	cmp	DWORD PTR -568[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -560[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	or	eax, ecx
	test	al, al
	jne	.L61
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L64:
	nop
.L44:
	mov	eax, DWORD PTR -716[rbp]
	sub	eax, 8
	mov	DWORD PTR -480[rbp], eax
	mov	eax, DWORD PTR -480[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -476[rbp], eax
	mov	eax, DWORD PTR -476[rbp]
	sub	eax, 1073741823
	mov	DWORD PTR -472[rbp], eax
	cmp	DWORD PTR -476[rbp], 1073741822
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -472[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -468[rbp], eax
	mov	eax, DWORD PTR -468[rbp]
	and	eax, 1
	mov	DWORD PTR -464[rbp], eax
	mov	eax, DWORD PTR -464[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -476[rbp]
	xor	eax, 16
	xor	eax, DWORD PTR -472[rbp]
	sar	eax, 4
	mov	DWORD PTR -460[rbp], eax
	mov	eax, DWORD PTR -460[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -472[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -472[rbp]
	sar	eax, 31
	mov	DWORD PTR -456[rbp], eax
	mov	eax, DWORD PTR -456[rbp]
	mov	DWORD PTR -452[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -452[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -476[rbp]
	sar	eax, 31
	mov	DWORD PTR -448[rbp], eax
	mov	eax, DWORD PTR -456[rbp]
	xor	eax, DWORD PTR -448[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -448[rbp]
	add	eax, edx
	mov	DWORD PTR -444[rbp], eax
	cmp	DWORD PTR -444[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -456[rbp]
	xor	eax, DWORD PTR -448[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -448[rbp]
	add	eax, edx
	mov	DWORD PTR -440[rbp], eax
	cmp	DWORD PTR -472[rbp], 0
	setne	cl
	cmp	DWORD PTR -452[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -440[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	xor	eax, 1
	and	eax, ecx
	test	al, al
	je	.L62
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L62:
	nop
.L45:
	mov	eax, DWORD PTR -708[rbp]
	add	eax, 166
	mov	DWORD PTR -436[rbp], eax
	mov	eax, DWORD PTR -436[rbp]
	mov	DWORD PTR -856[rbp], eax
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -852[rbp], eax
	jmp	.L31
.L28:
	mov	eax, DWORD PTR -848[rbp]
	mov	DWORD PTR -96[rbp], eax
	mov	DWORD PTR STATE_REG_RAX[rip], 0
	mov	eax, DWORD PTR -96[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -92[rbp], eax
	mov	eax, DWORD PTR -92[rbp]
	mov	DWORD PTR STATE_REG_RBP[rip], eax
	mov	eax, DWORD PTR -96[rbp]
	add	eax, 8
	mov	DWORD PTR -88[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	mov	DWORD PTR STATE_REG_IP[rip], eax
	mov	eax, DWORD PTR -96[rbp]
	add	eax, 16
	mov	DWORD PTR STATE_REG_RSP[rip], eax
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L52
.L55:
	nop
.L30:
	mov	eax, DWORD PTR -716[rbp]
	sub	eax, 12
	mov	DWORD PTR -632[rbp], eax
	mov	eax, DWORD PTR -632[rbp]
	cdqe
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -628[rbp], eax
	mov	eax, DWORD PTR -628[rbp]
	add	eax, 1073741823
	mov	DWORD PTR -624[rbp], eax
	cmp	DWORD PTR -628[rbp], -1073741823
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -624[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -620[rbp], eax
	mov	eax, DWORD PTR -620[rbp]
	and	eax, 1
	mov	DWORD PTR -616[rbp], eax
	mov	eax, DWORD PTR -616[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -624[rbp]
	xor	eax, DWORD PTR -628[rbp]
	sar	eax, 4
	mov	DWORD PTR -612[rbp], eax
	mov	eax, DWORD PTR -612[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -624[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -624[rbp]
	sar	eax, 31
	mov	DWORD PTR -608[rbp], eax
	mov	eax, DWORD PTR -608[rbp]
	mov	DWORD PTR -604[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -604[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -628[rbp]
	sar	eax, 31
	mov	DWORD PTR -600[rbp], eax
	mov	eax, DWORD PTR -608[rbp]
	xor	eax, DWORD PTR -600[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -600[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -596[rbp], eax
	cmp	DWORD PTR -596[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -608[rbp]
	xor	eax, DWORD PTR -600[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -600[rbp]
	xor	eax, 1
	add	eax, edx
	mov	DWORD PTR -592[rbp], eax
	cmp	DWORD PTR -604[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -592[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	test	eax, eax
	je	.L63
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L60:
	nop
.L41:
	mov	eax, DWORD PTR -552[rbp]
	sub	eax, 1073741823
	mov	DWORD PTR -512[rbp], eax
	cmp	DWORD PTR -552[rbp], 1073741822
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -512[rbp]
	movzx	eax, al
	mov	edi, eax
	call	llvm_OC_ctpop_OC_i32
	mov	DWORD PTR -508[rbp], eax
	mov	eax, DWORD PTR -508[rbp]
	and	eax, 1
	mov	DWORD PTR -504[rbp], eax
	mov	eax, DWORD PTR -504[rbp]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -552[rbp]
	xor	eax, 16
	xor	eax, DWORD PTR -512[rbp]
	sar	eax, 4
	mov	DWORD PTR -500[rbp], eax
	mov	eax, DWORD PTR -500[rbp]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	cmp	DWORD PTR -512[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -48[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -512[rbp]
	sar	eax, 31
	mov	DWORD PTR -496[rbp], eax
	mov	eax, DWORD PTR -496[rbp]
	mov	DWORD PTR -492[rbp], eax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR -492[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -496[rbp]
	xor	eax, DWORD PTR -524[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -524[rbp]
	add	eax, edx
	mov	DWORD PTR -488[rbp], eax
	cmp	DWORD PTR -488[rbp], 2
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -32[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -496[rbp]
	xor	eax, DWORD PTR -524[rbp]
	mov	edx, eax
	mov	eax, DWORD PTR -524[rbp]
	add	eax, edx
	mov	DWORD PTR -484[rbp], eax
	cmp	DWORD PTR -512[rbp], 0
	sete	cl
	cmp	DWORD PTR -492[rbp], 0
	setne	al
	movzx	edx, al
	cmp	DWORD PTR -484[rbp], 2
	sete	al
	movzx	eax, al
	xor	eax, edx
	and	eax, 1
	or	eax, ecx
	test	al, al
	jne	.L64
	mov	eax, DWORD PTR -716[rbp]
	mov	DWORD PTR -848[rbp], eax
	jmp	.L28
.L52:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	main, .-main
	.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	"584049.c"
	.text
	.global	globalState
	.data
	.align	2
	.type	globalState, %object
	.size	globalState, 4
globalState:
	.word	global_state
	.text
	.align	2
	.global	__VERIFIER_nondet_int
	.syntax unified
	.arm
	.fpu softvfp
	.type	__VERIFIER_nondet_int, %function
__VERIFIER_nondet_int:
	@ 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
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	__VERIFIER_nondet_int, .-__VERIFIER_nondet_int
	.comm	__bss_start,32,4
	.comm	STATE_REG_RAX,4,4
	.comm	STATE_REG_RBX,4,4
	.comm	STATE_REG_RCX,4,4
	.comm	STATE_REG_RDX,4,4
	.comm	STATE_REG_RSI,4,4
	.comm	STATE_REG_RDI,4,4
	.comm	STATE_REG_RSP,4,4
	.comm	STATE_REG_RBP,4,4
	.comm	STATE_REG_R8,4,4
	.comm	STATE_REG_R9,4,4
	.comm	STATE_REG_R10,4,4
	.comm	STATE_REG_R11,4,4
	.comm	STATE_REG_R12,4,4
	.comm	STATE_REG_R13,4,4
	.comm	STATE_REG_R14,4,4
	.comm	STATE_REG_R15,4,4
	.comm	STATE_REG_IP,4,4
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_OC_ctpop_OC_i32, %function
llvm_OC_ctpop_OC_i32:
	@ 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, #0
	str	r3, [fp, #-8]
	b	.L4
.L6:
	ldr	r3, [fp, #-16]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L5
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L5:
	ldr	r3, [fp, #-16]
	asr	r3, r3, #1
	str	r3, [fp, #-16]
.L4:
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L6
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_OC_ctpop_OC_i32, .-llvm_OC_ctpop_OC_i32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_select_u64, %function
llvm_select_u64:
	@ 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, #-16]
	str	r1, [fp, #-20]
	str	r2, [fp, #-24]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L9
	ldr	r3, [fp, #-20]
	b	.L10
.L9:
	ldr	r3, [fp, #-24]
.L10:
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_select_u64, .-llvm_select_u64
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_add_u32, %function
llvm_add_u32:
	@ 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	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_add_u32, .-llvm_add_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_add_u64, %function
llvm_add_u64:
	@ 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	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_add_u64, .-llvm_add_u64
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_sub_u32, %function
llvm_sub_u32:
	@ 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	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	sub	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_sub_u32, .-llvm_sub_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_lshr_u32, %function
llvm_lshr_u32:
	@ 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	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	asr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_lshr_u32, .-llvm_lshr_u32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_lshr_u64, %function
llvm_lshr_u64:
	@ 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	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	asr	r3, r2, r3
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_lshr_u64, .-llvm_lshr_u64
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_and_u8, %function
llvm_and_u8:
	@ 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	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	and	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_and_u8, .-llvm_and_u8
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	llvm_xor_u8, %function
llvm_xor_u8:
	@ 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	r2, [fp, #-16]
	ldr	r3, [fp, #-20]
	eor	r3, r3, r2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	llvm_xor_u8, .-llvm_xor_u8
	.comm	global_state,1704,8
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 816
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #816
	ldr	r3, .L65
	ldr	r3, [r3]
	str	r3, [fp, #-800]
	ldr	r3, .L65+12
	ldr	r3, [r3]
	str	r3, [fp, #-796]
	ldr	r3, .L65+20
	ldr	r3, [r3]
	str	r3, [fp, #-792]
	ldr	r3, [fp, #-792]
	sub	r3, r3, #8
	str	r3, [fp, #-788]
	ldr	r3, [fp, #-788]
	ldr	r2, [fp, #-796]
	str	r2, [r3]
	ldr	r2, .L65+12
	ldr	r3, [fp, #-788]
	str	r3, [r2]
	ldr	r3, [fp, #-792]
	sub	r3, r3, #24
	str	r3, [fp, #-784]
	ldr	r3, [fp, #-800]
	add	r3, r3, #1040
	str	r3, [fp, #-780]
	ldr	r3, [fp, #-788]
	cmp	r3, #15
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-784]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-776]
	ldr	r3, [fp, #-800]
	add	r3, r3, #1040
	add	r3, r3, #8
	str	r3, [fp, #-772]
	ldr	r3, [fp, #-776]
	and	r3, r3, #1
	str	r3, [fp, #-768]
	ldr	r3, [fp, #-768]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r3, [fp, #-800]
	add	r3, r3, #1056
	str	r3, [fp, #-764]
	ldr	r2, [fp, #-788]
	ldr	r3, [fp, #-784]
	eor	r3, r3, r2
	asr	r3, r3, #4
	eor	r3, r3, #1
	str	r3, [fp, #-760]
	ldr	r3, [fp, #-760]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-800]
	add	r3, r3, #1056
	add	r3, r3, #8
	str	r3, [fp, #-756]
	ldr	r3, [fp, #-784]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	mov	r2, #63
	ldr	r3, [fp, #-784]
	asr	r3, r3, r2
	str	r3, [fp, #-752]
	ldr	r3, [fp, #-800]
	add	r3, r3, #1072
	str	r3, [fp, #-748]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-752]
	str	r2, [r3]
	mov	r2, #63
	ldr	r3, [fp, #-788]
	asr	r3, r3, r2
	str	r3, [fp, #-744]
	ldr	r3, [fp, #-800]
	add	r3, r3, #1088
	str	r3, [fp, #-740]
	ldr	r2, [fp, #-752]
	ldr	r3, [fp, #-744]
	eor	r3, r3, r2
	ldr	r2, [fp, #-744]
	add	r3, r2, r3
	str	r3, [fp, #-736]
	ldr	r3, [fp, #-736]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r3, .L65+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-792]
	sub	r3, r3, #32
	str	r3, [fp, #-732]
	ldr	r3, [fp, #-732]
	ldr	r2, [fp, #-728]
	add	r2, r2, #22
	str	r2, [r3]
	ldr	r2, .L65+20
	ldr	r3, [fp, #-732]
	str	r3, [r2]
	bl	__VERIFIER_nondet_int
	mov	r3, r0
	ldr	r2, .L65+8
	str	r3, [r2]
	ldr	r3, .L65+12
	ldr	r3, [r3]
	str	r3, [fp, #-724]
	ldr	r3, .L65+8
	ldr	r3, [r3]
	str	r3, [fp, #-720]
	ldr	r3, .L65+16
	ldr	r3, [r3]
	str	r3, [fp, #-716]
	ldr	r3, [fp, #-724]
	sub	r3, r3, #4
	str	r3, [fp, #-712]
	ldr	r3, [fp, #-712]
	ldr	r2, [fp, #-720]
	str	r2, [r3]
	ldr	r3, .L65+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L65+20
	ldr	r3, [r3]
	str	r3, [fp, #-708]
	ldr	r3, [fp, #-708]
	sub	r3, r3, #8
	str	r3, [fp, #-704]
	ldr	r3, [fp, #-704]
	ldr	r2, [fp, #-716]
	add	r2, r2, #13
	str	r2, [r3]
	ldr	r2, .L65+20
	ldr	r3, [fp, #-704]
	str	r3, [r2]
	bl	__VERIFIER_nondet_int
	mov	r3, r0
	ldr	r2, .L65+8
	str	r3, [r2]
	ldr	r3, .L65+12
	ldr	r3, [r3]
	str	r3, [fp, #-700]
	ldr	r3, .L65+8
	ldr	r3, [r3]
	str	r3, [fp, #-696]
	ldr	r3, .L65+16
	ldr	r3, [r3]
	str	r3, [fp, #-692]
	ldr	r3, [fp, #-700]
	sub	r3, r3, #8
	str	r3, [fp, #-688]
	ldr	r3, [fp, #-688]
	ldr	r2, [fp, #-696]
	str	r2, [r3]
	ldr	r3, .L65+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L65+20
	ldr	r3, [r3]
	str	r3, [fp, #-684]
	ldr	r3, [fp, #-684]
	sub	r3, r3, #8
	str	r3, [fp, #-680]
	ldr	r3, [fp, #-680]
	ldr	r2, [fp, #-692]
	add	r2, r2, #13
	str	r2, [r3]
	ldr	r2, .L65+20
	ldr	r3, [fp, #-680]
	str	r3, [r2]
	bl	__VERIFIER_nondet_int
	mov	r3, r0
	ldr	r2, .L65+8
	str	r3, [r2]
	ldr	r3, .L65+12
	ldr	r3, [r3]
	str	r3, [fp, #-676]
	ldr	r3, .L65+8
	ldr	r3, [r3]
	str	r3, [fp, #-672]
	ldr	r3, .L65+16
	ldr	r3, [r3]
	str	r3, [fp, #-668]
	ldr	r3, [fp, #-676]
	sub	r3, r3, #12
	str	r3, [fp, #-664]
	ldr	r3, [fp, #-664]
	ldr	r2, [fp, #-672]
	str	r2, [r3]
	ldr	r3, .L65+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L65+20
	ldr	r3, [r3]
	str	r3, [fp, #-660]
	ldr	r3, [fp, #-660]
	sub	r3, r3, #8
	str	r3, [fp, #-656]
	ldr	r3, [fp, #-656]
	ldr	r2, [fp, #-668]
	add	r2, r2, #13
	str	r2, [r3]
	ldr	r2, .L65+20
	ldr	r3, [fp, #-656]
	str	r3, [r2]
	bl	__VERIFIER_nondet_int
	mov	r3, r0
	ldr	r2, .L65+8
	str	r3, [r2]
	ldr	r3, .L65+12
	ldr	r3, [r3]
	str	r3, [fp, #-652]
	ldr	r3, .L65+8
	ldr	r3, [r3]
	str	r3, [fp, #-648]
	ldr	r3, .L65+16
	ldr	r3, [r3]
	str	r3, [fp, #-644]
	ldr	r3, [fp, #-652]
	sub	r3, r3, #16
	str	r3, [fp, #-640]
	ldr	r3, [fp, #-640]
	ldr	r2, [fp, #-648]
	str	r2, [r3]
	ldr	r3, [fp, #-648]
	sub	r3, r3, #-1073741823
	str	r3, [fp, #-636]
	ldr	r3, [fp, #-648]
	cmp	r3, #-1073741823
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-636]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-632]
	ldr	r3, [fp, #-632]
	and	r3, r3, #1
	str	r3, [fp, #-628]
	ldr	r3, [fp, #-628]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r2, [fp, #-636]
	ldr	r3, [fp, #-648]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-624]
	ldr	r3, [fp, #-624]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-636]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-636]
	asr	r3, r3, #31
	str	r3, [fp, #-620]
	ldr	r3, [fp, #-620]
	str	r3, [fp, #-616]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-616]
	str	r2, [r3]
	ldr	r3, [fp, #-648]
	asr	r3, r3, #31
	str	r3, [fp, #-612]
	ldr	r2, [fp, #-620]
	ldr	r3, [fp, #-612]
	eor	r2, r2, r3
	ldr	r3, [fp, #-612]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-608]
	ldr	r3, [fp, #-608]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-620]
	ldr	r3, [fp, #-612]
	eor	r2, r2, r3
	ldr	r3, [fp, #-612]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-604]
	ldr	r3, [fp, #-616]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-604]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L54
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-812]
	b	.L28
.L54:
	nop
.L27:
	ldr	r3, [fp, #-648]
	add	r3, r3, #-1073741823
	str	r3, [fp, #-600]
	ldr	r3, [fp, #-648]
	cmn	r3, #-1073741822
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-600]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-596]
	ldr	r3, [fp, #-596]
	and	r3, r3, #1
	str	r3, [fp, #-592]
	ldr	r3, [fp, #-592]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r3, [fp, #-648]
	eor	r2, r3, #16
	ldr	r3, [fp, #-600]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-588]
	ldr	r3, [fp, #-588]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-600]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-600]
	asr	r3, r3, #31
	str	r3, [fp, #-584]
	ldr	r3, [fp, #-584]
	str	r3, [fp, #-580]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-580]
	str	r2, [r3]
	ldr	r2, [fp, #-584]
	ldr	r3, [fp, #-612]
	eor	r3, r3, r2
	ldr	r2, [fp, #-612]
	add	r3, r2, r3
	str	r3, [fp, #-576]
	ldr	r3, [fp, #-576]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-584]
	ldr	r3, [fp, #-612]
	eor	r3, r3, r2
	ldr	r2, [fp, #-612]
	add	r3, r2, r3
	str	r3, [fp, #-572]
	ldr	r3, [fp, #-600]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-580]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-572]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	orr	r3, r2, r3
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L55
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-812]
	b	.L28
.L31:
	ldr	r3, [fp, #-820]
	str	r3, [fp, #-368]
	ldr	r3, [fp, #-816]
	str	r3, [fp, #-364]
	ldr	r3, [fp, #-364]
	sub	r3, r3, #4
	str	r3, [fp, #-360]
	ldr	r3, [fp, #-360]
	ldr	r3, [r3]
	str	r3, [fp, #-356]
	ldr	r3, [fp, #-364]
	sub	r3, r3, #8
	str	r3, [fp, #-352]
	ldr	r3, [fp, #-352]
	ldr	r3, [r3]
	str	r3, [fp, #-348]
	ldr	r1, [fp, #-348]
	ldr	r0, [fp, #-356]
	bl	llvm_sub_u32
	str	r0, [fp, #-344]
	ldr	r2, [fp, #-356]
	ldr	r3, [fp, #-348]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-344]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-340]
	ldr	r3, [fp, #-340]
	and	r3, r3, #1
	str	r3, [fp, #-336]
	ldr	r3, [fp, #-336]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r2, [fp, #-348]
	ldr	r3, [fp, #-356]
	eor	r2, r2, r3
	ldr	r3, [fp, #-344]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-332]
	ldr	r3, [fp, #-332]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-344]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-344]
	asr	r3, r3, #31
	str	r3, [fp, #-328]
	ldr	r3, [fp, #-328]
	str	r3, [fp, #-324]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-324]
	str	r2, [r3]
	ldr	r3, [fp, #-356]
	asr	r3, r3, #31
	str	r3, [fp, #-320]
	ldr	r3, [fp, #-348]
	asr	r3, r3, #31
	str	r3, [fp, #-316]
	ldr	r2, [fp, #-328]
	ldr	r3, [fp, #-320]
	eor	r2, r2, r3
	ldr	r1, [fp, #-316]
	ldr	r3, [fp, #-320]
	eor	r3, r3, r1
	add	r3, r2, r3
	str	r3, [fp, #-312]
	ldr	r3, [fp, #-312]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r3, [fp, #-348]
	asr	r3, r3, #31
	str	r3, [fp, #-308]
	ldr	r2, [fp, #-328]
	ldr	r3, [fp, #-320]
	eor	r2, r2, r3
	ldr	r1, [fp, #-308]
	ldr	r3, [fp, #-320]
	eor	r3, r3, r1
	add	r3, r2, r3
	str	r3, [fp, #-304]
	ldr	r3, [fp, #-324]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-304]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L56
	ldr	r3, [fp, #-364]
	str	r3, [fp, #-812]
	b	.L28
.L56:
	nop
.L32:
	ldr	r3, [fp, #-364]
	sub	r3, r3, #16
	str	r3, [fp, #-300]
	ldr	r3, [fp, #-300]
	ldr	r3, [r3]
	str	r3, [fp, #-296]
	ldr	r2, .L65+4
	ldr	r3, [fp, #-296]
	str	r3, [r2]
	ldr	r3, [fp, #-364]
	sub	r3, r3, #12
	str	r3, [fp, #-292]
	ldr	r3, [fp, #-292]
	ldr	r3, [r3]
	str	r3, [fp, #-288]
	ldr	r2, [fp, #-288]
	ldr	r3, [fp, #-296]
	add	r3, r2, r3
	str	r3, [fp, #-284]
	ldr	r1, [fp, #-284]
	ldr	r0, [fp, #-356]
	bl	llvm_sub_u32
	str	r0, [fp, #-280]
	ldr	r2, [fp, #-356]
	ldr	r3, [fp, #-284]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-280]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-276]
	ldr	r3, [fp, #-276]
	and	r3, r3, #1
	str	r3, [fp, #-272]
	ldr	r3, [fp, #-272]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r2, [fp, #-284]
	ldr	r3, [fp, #-356]
	eor	r2, r2, r3
	ldr	r3, [fp, #-280]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-268]
	ldr	r3, [fp, #-268]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-280]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-280]
	asr	r3, r3, #31
	str	r3, [fp, #-264]
	ldr	r3, [fp, #-264]
	str	r3, [fp, #-260]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-260]
	str	r2, [r3]
	ldr	r3, [fp, #-284]
	asr	r3, r3, #31
	str	r3, [fp, #-256]
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-320]
	eor	r2, r2, r3
	ldr	r1, [fp, #-256]
	ldr	r3, [fp, #-320]
	eor	r3, r3, r1
	add	r3, r2, r3
	str	r3, [fp, #-252]
	ldr	r3, [fp, #-252]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r3, [fp, #-284]
	asr	r3, r3, #31
	str	r3, [fp, #-248]
	ldr	r2, [fp, #-264]
	ldr	r3, [fp, #-320]
	eor	r2, r2, r3
	ldr	r1, [fp, #-248]
	ldr	r3, [fp, #-320]
	eor	r3, r3, r1
	add	r3, r2, r3
	str	r3, [fp, #-244]
	ldr	r3, [fp, #-280]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-260]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-244]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	eor	r3, r3, #1
	and	r3, r3, #255
	and	r3, r3, r2
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L57
	ldr	r3, [fp, #-364]
	str	r3, [fp, #-812]
	b	.L28
.L57:
	nop
.L33:
	ldr	r3, .L65+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L65+20
	ldr	r3, [r3]
	str	r3, [fp, #-240]
	ldr	r3, [fp, #-240]
	sub	r3, r3, #8
	str	r3, [fp, #-236]
	ldr	r3, [fp, #-236]
	ldr	r2, [fp, #-368]
	sub	r2, r2, #56
	str	r2, [r3]
	ldr	r2, .L65+20
	ldr	r3, [fp, #-236]
	str	r3, [r2]
	bl	__VERIFIER_nondet_int
	mov	r3, r0
	ldr	r2, .L65+8
	str	r3, [r2]
	ldr	r3, .L65+8
	ldr	r3, [r3]
	str	r3, [fp, #-232]
	ldr	r3, .L65+16
	ldr	r3, [r3]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-232]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, #2
	mov	r1, #50
	mov	r0, r3
	bl	llvm_select_u64
	str	r0, [fp, #-224]
	ldr	r3, [fp, #-228]
	add	r3, r3, #2
	str	r3, [fp, #-220]
	ldr	r2, [fp, #-220]
	ldr	r3, [fp, #-224]
	add	r3, r2, r3
	str	r3, [fp, #-216]
	ldr	r3, .L65+12
	ldr	r3, [r3]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-232]
	cmp	r3, #0
	beq	.L58
	nop
.L34:
	ldr	r3, [fp, #-212]
	sub	r3, r3, #12
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	ldr	r3, [r3]
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-200]
	sub	r3, r3, #1
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-204]
	ldr	r2, [fp, #-196]
	str	r2, [r3]
	ldr	r3, [fp, #-200]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-196]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-192]
	ldr	r3, [fp, #-192]
	and	r3, r3, #1
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r2, [fp, #-196]
	ldr	r3, [fp, #-200]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-184]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-196]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-196]
	asr	r3, r3, #31
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-180]
	str	r2, [r3]
	ldr	r3, [fp, #-200]
	asr	r3, r3, #31
	str	r3, [fp, #-176]
	ldr	r2, [fp, #-180]
	ldr	r3, [fp, #-176]
	eor	r3, r3, r2
	ldr	r2, [fp, #-176]
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r3, [fp, #-212]
	sub	r3, r3, #4
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-212]
	sub	r3, r3, #16
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	ldr	r2, [fp, #-164]
	str	r2, [r3]
	ldr	r3, .L65+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L65+20
	ldr	r3, [r3]
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	sub	r3, r3, #8
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-152]
	ldr	r2, [fp, #-216]
	add	r2, r2, #20
	str	r2, [r3]
	ldr	r2, .L65+20
	ldr	r3, [fp, #-152]
	str	r3, [r2]
	bl	__VERIFIER_nondet_int
	mov	r3, r0
	ldr	r2, .L65+8
	str	r3, [r2]
	ldr	r3, .L65+12
	ldr	r3, [r3]
	str	r3, [fp, #-148]
	ldr	r3, .L65+8
	ldr	r3, [r3]
	str	r3, [fp, #-144]
	ldr	r3, .L65+16
	ldr	r3, [r3]
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	sub	r3, r3, #4
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-136]
	ldr	r2, [fp, #-144]
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	sub	r3, r3, #-1073741823
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-144]
	cmp	r3, #-1073741823
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-132]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-128]
	ldr	r3, [fp, #-128]
	and	r3, r3, #1
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-144]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-120]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-132]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-132]
	asr	r3, r3, #31
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-116]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-112]
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	asr	r3, r3, #31
	str	r3, [fp, #-108]
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-108]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-104]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-108]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-112]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-100]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L59
	ldr	r3, [fp, #-148]
	str	r3, [fp, #-812]
	b	.L28
.L66:
	.align	2
.L65:
	.word	globalState
	.word	STATE_REG_RDX
	.word	STATE_REG_RAX
	.word	STATE_REG_RBP
	.word	STATE_REG_IP
	.word	STATE_REG_RSP
.L59:
	nop
.L36:
	ldr	r3, [fp, #-144]
	add	r3, r3, #-1073741823
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-144]
	cmn	r3, #-1073741822
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-92]
	ldr	r3, [fp, #-92]
	and	r3, r3, #1
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-88]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	eor	r2, r3, #16
	ldr	r3, [fp, #-96]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-84]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	asr	r3, r3, #31
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-76]
	str	r2, [r3]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-108]
	eor	r3, r3, r2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-72]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-80]
	ldr	r3, [fp, #-108]
	eor	r3, r3, r2
	ldr	r2, [fp, #-108]
	add	r3, r2, r3
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-68]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	orr	r3, r2, r3
	and	r3, r3, #255
	str	r3, [fp, #-64]
	mov	r2, #2
	mov	r1, #13
	ldr	r0, [fp, #-64]
	bl	llvm_select_u64
	str	r0, [fp, #-60]
	ldr	r3, [fp, #-140]
	add	r3, r3, #19
	str	r3, [fp, #-56]
	ldr	r2, [fp, #-56]
	ldr	r3, [fp, #-60]
	add	r3, r2, r3
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	beq	.L37
	ldr	r3, [fp, #-52]
	str	r3, [fp, #-808]
	ldr	r3, [fp, #-148]
	str	r3, [fp, #-804]
	b	.L38
.L37:
	ldr	r3, [fp, #-148]
	str	r3, [fp, #-812]
	b	.L28
.L58:
	nop
.L35:
	ldr	r3, [fp, #-216]
	add	r3, r3, #4
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-212]
	sub	r3, r3, #8
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-36]
	add	r2, r3, #1
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	str	r3, [fp, #-808]
	ldr	r3, [fp, #-212]
	str	r3, [fp, #-804]
	nop
.L38:
	ldr	r3, [fp, #-808]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-804]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-32]
	str	r3, [fp, #-820]
	ldr	r3, [fp, #-28]
	str	r3, [fp, #-816]
	b	.L31
.L61:
	nop
.L39:
	ldr	r3, [fp, #-652]
	sub	r3, r3, #4
	str	r3, [fp, #-492]
	ldr	r3, [fp, #-492]
	ldr	r3, [r3]
	str	r3, [fp, #-488]
	ldr	r3, [fp, #-488]
	sub	r3, r3, #-1073741823
	str	r3, [fp, #-484]
	ldr	r3, [fp, #-488]
	cmp	r3, #-1073741823
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-484]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-480]
	ldr	r3, [fp, #-480]
	and	r3, r3, #1
	str	r3, [fp, #-476]
	ldr	r3, [fp, #-476]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r2, [fp, #-484]
	ldr	r3, [fp, #-488]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-472]
	ldr	r3, [fp, #-472]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-484]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-484]
	asr	r3, r3, #31
	str	r3, [fp, #-468]
	ldr	r3, [fp, #-468]
	str	r3, [fp, #-464]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-464]
	str	r2, [r3]
	ldr	r3, [fp, #-488]
	asr	r3, r3, #31
	str	r3, [fp, #-460]
	ldr	r2, [fp, #-468]
	ldr	r3, [fp, #-460]
	eor	r2, r2, r3
	ldr	r3, [fp, #-460]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-456]
	ldr	r3, [fp, #-456]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-468]
	ldr	r3, [fp, #-460]
	eor	r2, r2, r3
	ldr	r3, [fp, #-460]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-452]
	ldr	r3, [fp, #-464]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-452]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L60
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-812]
	b	.L28
.L63:
	nop
.L42:
	ldr	r3, [fp, #-564]
	add	r3, r3, #-1073741823
	str	r3, [fp, #-524]
	ldr	r3, [fp, #-564]
	cmn	r3, #-1073741822
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-524]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-520]
	ldr	r3, [fp, #-520]
	and	r3, r3, #1
	str	r3, [fp, #-516]
	ldr	r3, [fp, #-516]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r3, [fp, #-564]
	eor	r2, r3, #16
	ldr	r3, [fp, #-524]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-512]
	ldr	r3, [fp, #-512]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-524]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-524]
	asr	r3, r3, #31
	str	r3, [fp, #-508]
	ldr	r3, [fp, #-508]
	str	r3, [fp, #-504]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-504]
	str	r2, [r3]
	ldr	r2, [fp, #-508]
	ldr	r3, [fp, #-536]
	eor	r3, r3, r2
	ldr	r2, [fp, #-536]
	add	r3, r2, r3
	str	r3, [fp, #-500]
	ldr	r3, [fp, #-500]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-508]
	ldr	r3, [fp, #-536]
	eor	r3, r3, r2
	ldr	r2, [fp, #-536]
	add	r3, r2, r3
	str	r3, [fp, #-496]
	ldr	r3, [fp, #-524]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-504]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-496]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	orr	r3, r2, r3
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L61
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-812]
	b	.L28
.L64:
	nop
.L44:
	ldr	r3, [fp, #-652]
	sub	r3, r3, #8
	str	r3, [fp, #-416]
	ldr	r3, [fp, #-416]
	ldr	r3, [r3]
	str	r3, [fp, #-412]
	ldr	r3, [fp, #-412]
	add	r3, r3, #-1073741823
	str	r3, [fp, #-408]
	ldr	r3, [fp, #-412]
	cmn	r3, #-1073741822
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-408]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-404]
	ldr	r3, [fp, #-404]
	and	r3, r3, #1
	str	r3, [fp, #-400]
	ldr	r3, [fp, #-400]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r3, [fp, #-412]
	eor	r2, r3, #16
	ldr	r3, [fp, #-408]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-396]
	ldr	r3, [fp, #-396]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-408]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-408]
	asr	r3, r3, #31
	str	r3, [fp, #-392]
	ldr	r3, [fp, #-392]
	str	r3, [fp, #-388]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-388]
	str	r2, [r3]
	ldr	r3, [fp, #-412]
	asr	r3, r3, #31
	str	r3, [fp, #-384]
	ldr	r2, [fp, #-392]
	ldr	r3, [fp, #-384]
	eor	r3, r3, r2
	ldr	r2, [fp, #-384]
	add	r3, r2, r3
	str	r3, [fp, #-380]
	ldr	r3, [fp, #-380]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-392]
	ldr	r3, [fp, #-384]
	eor	r3, r3, r2
	ldr	r2, [fp, #-384]
	add	r3, r2, r3
	str	r3, [fp, #-376]
	ldr	r3, [fp, #-408]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-388]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-376]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	eor	r3, r3, #1
	and	r3, r3, #255
	and	r3, r3, r2
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L62
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-812]
	b	.L28
.L62:
	nop
.L45:
	ldr	r3, [fp, #-644]
	add	r3, r3, #166
	str	r3, [fp, #-372]
	ldr	r3, [fp, #-372]
	str	r3, [fp, #-820]
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-816]
	b	.L31
.L28:
	ldr	r3, [fp, #-812]
	str	r3, [fp, #-24]
	ldr	r3, .L65+8
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	str	r3, [fp, #-20]
	ldr	r2, .L65+12
	ldr	r3, [fp, #-20]
	str	r3, [r2]
	ldr	r3, [fp, #-24]
	add	r3, r3, #8
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	str	r3, [fp, #-12]
	ldr	r2, .L65+16
	ldr	r3, [fp, #-12]
	str	r3, [r2]
	ldr	r3, [fp, #-24]
	add	r3, r3, #16
	ldr	r2, .L65+20
	str	r3, [r2]
	ldr	r3, [fp, #-8]
	b	.L52
.L55:
	nop
.L30:
	ldr	r3, [fp, #-652]
	sub	r3, r3, #12
	str	r3, [fp, #-568]
	ldr	r3, [fp, #-568]
	ldr	r3, [r3]
	str	r3, [fp, #-564]
	ldr	r3, [fp, #-564]
	sub	r3, r3, #-1073741823
	str	r3, [fp, #-560]
	ldr	r3, [fp, #-564]
	cmp	r3, #-1073741823
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-560]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-556]
	ldr	r3, [fp, #-556]
	and	r3, r3, #1
	str	r3, [fp, #-552]
	ldr	r3, [fp, #-552]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r2, [fp, #-560]
	ldr	r3, [fp, #-564]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-548]
	ldr	r3, [fp, #-548]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-560]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-560]
	asr	r3, r3, #31
	str	r3, [fp, #-544]
	ldr	r3, [fp, #-544]
	str	r3, [fp, #-540]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-540]
	str	r2, [r3]
	ldr	r3, [fp, #-564]
	asr	r3, r3, #31
	str	r3, [fp, #-536]
	ldr	r2, [fp, #-544]
	ldr	r3, [fp, #-536]
	eor	r2, r2, r3
	ldr	r3, [fp, #-536]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-532]
	ldr	r3, [fp, #-532]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-544]
	ldr	r3, [fp, #-536]
	eor	r2, r2, r3
	ldr	r3, [fp, #-536]
	eor	r3, r3, #1
	add	r3, r2, r3
	str	r3, [fp, #-528]
	ldr	r3, [fp, #-540]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-528]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L63
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-812]
	b	.L28
.L60:
	nop
.L41:
	ldr	r3, [fp, #-488]
	add	r3, r3, #-1073741823
	str	r3, [fp, #-448]
	ldr	r3, [fp, #-488]
	cmn	r3, #-1073741822
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-780]
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	and	r3, r3, #255
	mov	r0, r3
	bl	llvm_OC_ctpop_OC_i32
	str	r0, [fp, #-444]
	ldr	r3, [fp, #-444]
	and	r3, r3, #1
	str	r3, [fp, #-440]
	ldr	r3, [fp, #-440]
	eor	r2, r3, #1
	ldr	r3, [fp, #-772]
	str	r2, [r3]
	ldr	r3, [fp, #-488]
	eor	r2, r3, #16
	ldr	r3, [fp, #-448]
	eor	r3, r3, r2
	asr	r3, r3, #4
	str	r3, [fp, #-436]
	ldr	r3, [fp, #-436]
	and	r2, r3, #1
	ldr	r3, [fp, #-764]
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-756]
	str	r2, [r3]
	ldr	r3, [fp, #-448]
	asr	r3, r3, #31
	str	r3, [fp, #-432]
	ldr	r3, [fp, #-432]
	str	r3, [fp, #-428]
	ldr	r3, [fp, #-748]
	ldr	r2, [fp, #-428]
	str	r2, [r3]
	ldr	r2, [fp, #-432]
	ldr	r3, [fp, #-460]
	eor	r3, r3, r2
	ldr	r2, [fp, #-460]
	add	r3, r2, r3
	str	r3, [fp, #-424]
	ldr	r3, [fp, #-424]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-740]
	str	r2, [r3]
	ldr	r2, [fp, #-432]
	ldr	r3, [fp, #-460]
	eor	r3, r3, r2
	ldr	r2, [fp, #-460]
	add	r3, r2, r3
	str	r3, [fp, #-420]
	ldr	r3, [fp, #-448]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-428]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-420]
	cmp	r3, #2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	orr	r3, r2, r3
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L64
	ldr	r3, [fp, #-652]
	str	r3, [fp, #-812]
	b	.L28
.L52:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
