	.file	"236170.c"
	.intel_syntax noprefix
	.text
	.globl	trail_number
	.bss
	.align 8
	.type	trail_number, @object
	.size	trail_number, 8
trail_number:
	.zero	8
	.globl	overall_bias
	.align 16
	.type	overall_bias, @object
	.size	overall_bias, 16
overall_bias:
	.zero	16
	.globl	active_sbox1
	.align 16
	.type	active_sbox1, @object
	.size	active_sbox1, 16
active_sbox1:
	.zero	16
	.globl	progress_number
	.align 16
	.type	progress_number, @object
	.size	progress_number, 16
progress_number:
	.zero	16
	.globl	sbox
	.section	.rodata
	.align 16
	.type	sbox, @object
	.size	sbox, 16
sbox:
	.string	"\f\005\006\013\t"
	.ascii	"\n\r\003\016\017\b\004\007\001\002"
	.globl	ptable
	.align 32
	.type	ptable, @object
	.size	ptable, 64
ptable:
	.string	""
	.ascii	"\020 0\001\021!1\002\022\"2\003\023#3\004\024$4\005\025%5\006"
	.ascii	"\026&6\007\027'7\b\030(8\t\031)9\n\032*:\013\033+;\f\034,<\r"
	.ascii	"\035-=\016\036.>\017\037/?"
	.globl	rptable
	.align 32
	.type	rptable, @object
	.size	rptable, 64
rptable:
	.string	""
	.ascii	"\004\b\f\020\024\030\034 $(,048<\001\005\t\r\021\025\031\035"
	.ascii	"!%)-159=\002\006\n\016\022\026\032\036\"&*.26:>\003\007\013\017"
	.ascii	"\023\027\033\037#'+/37;?"
	.globl	biastable
	.align 32
	.type	biastable, @object
	.size	biastable, 256
biastable:
	.string	"\b"
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	"\374"
	.string	"\374"
	.string	""
	.string	""
	.string	""
	.string	""
	.string	"\374"
	.ascii	"\004"
	.string	""
	.string	""
	.string	"\002\002\376\376"
	.string	""
	.string	"\002\376"
	.string	"\004"
	.ascii	"\004\376\002"
	.string	""
	.string	""
	.string	"\002\002\002\376\374"
	.string	"\376\002\374"
	.string	""
	.string	""
	.ascii	"\376\376"
	.string	""
	.string	""
	.string	"\376\002\376\376"
	.string	"\004\376\376"
	.string	"\374"
	.string	""
	.ascii	"\376\002"
	.string	""
	.string	""
	.string	"\376\002\376\002"
	.string	""
	.string	"\002\002\374"
	.string	"\004"
	.ascii	"\002\002"
	.string	""
	.string	""
	.string	""
	.string	"\374"
	.string	""
	.string	"\374"
	.string	""
	.string	"\374"
	.string	""
	.string	"\004"
	.string	""
	.string	""
	.string	""
	.string	""
	.string	""
	.string	"\004\004"
	.string	""
	.string	""
	.string	""
	.string	"\374"
	.string	""
	.string	""
	.string	""
	.string	"\004"
	.string	""
	.string	""
	.string	"\002\376"
	.string	""
	.string	"\376\002\376\002"
	.string	""
	.ascii	"\376\002\004\004"
	.string	""
	.string	"\004\376\376"
	.string	""
	.string	"\002\376\376\376\374"
	.string	"\376\002"
	.string	""
	.string	""
	.string	""
	.string	"\004"
	.string	"\002\002\002\376"
	.string	""
	.string	""
	.ascii	"\374\002\002\376\002"
	.string	""
	.string	"\374"
	.string	""
	.string	"\376\376\002\376\374"
	.string	""
	.string	""
	.ascii	"\002\002\002\376"
	.string	""
	.string	""
	.string	""
	.string	""
	.string	"\376\376\376\376\004"
	.string	""
	.ascii	"\374\376\002\002\376"
	.string	""
	.string	"\004\004"
	.string	"\376\376\002\002"
	.string	""
	.string	""
	.string	""
	.ascii	"\002\376\002\376"
	.string	""
	.string	""
	.string	"\002\002\374\004\376\376\376\376"
	.string	""
	.string	"\376\376"
	.string	""
	.string	""
	.string	"\004\376\002"
	.string	""
	.string	"\376\376\376\002\004"
	.string	"\002\002"
	.string	""
	.text
	.globl	permutation
	.type	permutation, @function
permutation:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	BYTE PTR -17[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	BYTE PTR -17[rbp], 0
	jmp	.L2
.L4:
	mov	QWORD PTR -8[rbp], 1
	movzx	eax, BYTE PTR -17[rbp]
	mov	ecx, eax
	sal	QWORD PTR -8[rbp], cl
	mov	rax, QWORD PTR -40[rbp]
	and	rax, QWORD PTR -8[rbp]
	test	rax, rax
	je	.L3
	mov	QWORD PTR -8[rbp], 1
	movzx	edx, BYTE PTR -17[rbp]
	mov	eax, 63
	sub	eax, edx
	cdqe
	lea	rdx, ptable[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	edx, al
	mov	eax, 63
	sub	eax, edx
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -16[rbp], rax
.L3:
	movzx	eax, BYTE PTR -17[rbp]
	add	eax, 1
	mov	BYTE PTR -17[rbp], al
.L2:
	cmp	BYTE PTR -17[rbp], 63
	jbe	.L4
	mov	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	permutation, .-permutation
	.globl	reverse_permutation
	.type	reverse_permutation, @function
reverse_permutation:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -40[rbp], rdi
	mov	BYTE PTR -17[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	QWORD PTR -8[rbp], 0
	mov	BYTE PTR -17[rbp], 0
	jmp	.L7
.L9:
	mov	QWORD PTR -8[rbp], 1
	movzx	eax, BYTE PTR -17[rbp]
	mov	ecx, eax
	sal	QWORD PTR -8[rbp], cl
	mov	rax, QWORD PTR -40[rbp]
	and	rax, QWORD PTR -8[rbp]
	test	rax, rax
	je	.L8
	mov	QWORD PTR -8[rbp], 1
	movzx	edx, BYTE PTR -17[rbp]
	mov	eax, 63
	sub	eax, edx
	cdqe
	lea	rdx, rptable[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	edx, al
	mov	eax, 63
	sub	eax, edx
	mov	rdx, QWORD PTR -8[rbp]
	mov	ecx, eax
	sal	rdx, cl
	mov	rax, rdx
	or	QWORD PTR -16[rbp], rax
.L8:
	movzx	eax, BYTE PTR -17[rbp]
	add	eax, 1
	mov	BYTE PTR -17[rbp], al
.L7:
	cmp	BYTE PTR -17[rbp], 63
	jbe	.L9
	mov	rax, QWORD PTR -16[rbp]
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	reverse_permutation, .-reverse_permutation
	.globl	bias
	.type	bias, @function
bias:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	eax, edi
	mov	QWORD PTR -64[rbp], rsi
	mov	BYTE PTR -52[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -48[rbp], 0
	mov	DWORD PTR -44[rbp], 0
	mov	DWORD PTR -40[rbp], 0
	mov	DWORD PTR -36[rbp], 1
	mov	DWORD PTR -32[rbp], 0
	jmp	.L12
.L21:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 56
	mov	BYTE PTR -24[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 48
	mov	BYTE PTR -23[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 40
	mov	BYTE PTR -22[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 32
	mov	BYTE PTR -21[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 24
	mov	BYTE PTR -20[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 16
	mov	BYTE PTR -19[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 8
	mov	BYTE PTR -18[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR -17[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 56
	mov	BYTE PTR -16[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 48
	mov	BYTE PTR -15[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 40
	mov	BYTE PTR -14[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 32
	mov	BYTE PTR -13[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 24
	mov	BYTE PTR -12[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 16
	mov	BYTE PTR -11[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 8
	mov	BYTE PTR -10[rbp], al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	add	rax, 1
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	mov	BYTE PTR -9[rbp], al
	mov	DWORD PTR -28[rbp], 0
	jmp	.L13
.L20:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	je	.L14
	add	DWORD PTR -44[rbp], 1
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 15
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	jns	.L15
	neg	DWORD PTR -40[rbp]
	neg	DWORD PTR -36[rbp]
.L15:
	cmp	DWORD PTR -40[rbp], 2
	jne	.L16
	add	DWORD PTR -48[rbp], 3
.L16:
	cmp	DWORD PTR -40[rbp], 4
	jne	.L14
	add	DWORD PTR -48[rbp], 2
.L14:
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 240
	test	eax, eax
	je	.L17
	add	DWORD PTR -44[rbp], 1
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	shr	al, 4
	movzx	eax, al
	and	eax, 15
	mov	edx, eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	shr	al, 4
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	mov	DWORD PTR -40[rbp], eax
	cmp	DWORD PTR -40[rbp], 0
	jns	.L18
	neg	DWORD PTR -40[rbp]
	neg	DWORD PTR -36[rbp]
.L18:
	cmp	DWORD PTR -40[rbp], 2
	jne	.L19
	add	DWORD PTR -48[rbp], 3
.L19:
	cmp	DWORD PTR -40[rbp], 4
	jne	.L17
	add	DWORD PTR -48[rbp], 2
.L17:
	add	DWORD PTR -28[rbp], 1
.L13:
	cmp	DWORD PTR -28[rbp], 7
	jle	.L20
	add	DWORD PTR -32[rbp], 1
.L12:
	movzx	eax, BYTE PTR -52[rbp]
	cmp	DWORD PTR -32[rbp], eax
	jl	.L21
	mov	eax, DWORD PTR -48[rbp]
	add	eax, 1
	sub	eax, DWORD PTR -44[rbp]
	mov	edx, DWORD PTR -36[rbp]
	imul	eax, edx
	mov	DWORD PTR -48[rbp], eax
	mov	eax, DWORD PTR -48[rbp]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L23
	call	__stack_chk_fail@PLT
.L23:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	bias, .-bias
	.globl	combination
	.type	combination, @function
combination:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 72
	.cfi_offset 3, -24
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -56[rbp], rdx
	mov	eax, ecx
	mov	ecx, r8d
	mov	QWORD PTR -72[rbp], r9
	mov	edx, esi
	mov	BYTE PTR -44[rbp], dl
	mov	BYTE PTR -48[rbp], al
	mov	eax, ecx
	mov	BYTE PTR -60[rbp], al
	mov	BYTE PTR -26[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	BYTE PTR -25[rbp], 0
	cmp	BYTE PTR -44[rbp], 14
	ja	.L25
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -44[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], 1
	jmp	.L26
.L34:
	movzx	eax, BYTE PTR -44[rbp]
	and	eax, 1
	test	al, al
	jne	.L27
	mov	BYTE PTR -26[rbp], 4
	jmp	.L28
.L27:
	mov	BYTE PTR -26[rbp], 0
.L28:
	movzx	eax, BYTE PTR -44[rbp]
	shr	al
	movzx	edx, al
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	movzx	eax, BYTE PTR -26[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	and	eax, 15
	mov	BYTE PTR -25[rbp], al
	movzx	eax, BYTE PTR -60[rbp]
	movzx	edx, BYTE PTR -48[rbp]
	sub	edx, 1
	cmp	eax, edx
	jne	.L29
	movzx	edx, BYTE PTR -44[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L29
	cmp	BYTE PTR -25[rbp], 0
	jne	.L41
.L29:
	cmp	BYTE PTR -25[rbp], 0
	jne	.L31
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -44[rbp]
	cdqe
	mov	BYTE PTR [rdx+rax], 0
	jmp	.L32
.L31:
	movzx	edx, BYTE PTR -25[rbp]
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rcx, rax
	movzx	eax, BYTE PTR -44[rbp]
	cdqe
	movzx	eax, BYTE PTR [rcx+rax]
	movzx	eax, al
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L42
.L32:
	movzx	edi, BYTE PTR -60[rbp]
	movzx	ecx, BYTE PTR -48[rbp]
	movzx	eax, BYTE PTR -44[rbp]
	add	eax, 1
	movzx	esi, al
	mov	r8, QWORD PTR -72[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	rax, QWORD PTR -40[rbp]
	push	QWORD PTR 24[rbp]
	push	QWORD PTR 16[rbp]
	mov	r9, r8
	mov	r8d, edi
	mov	rdi, rax
	call	combination
	add	rsp, 16
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -44[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L43
	jmp	.L33
.L42:
	nop
.L33:
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -44[rbp]
	cdqe
	movzx	ecx, BYTE PTR [rdx+rax]
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -44[rbp]
	add	ecx, ecx
	cdqe
	mov	BYTE PTR [rdx+rax], cl
.L26:
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rdx, rax
	movzx	eax, BYTE PTR -44[rbp]
	cdqe
	movzx	eax, BYTE PTR [rdx+rax]
	cmp	al, 15
	jbe	.L34
	jmp	.L25
.L43:
	nop
.L25:
	cmp	BYTE PTR -44[rbp], 15
	jne	.L44
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 7
	movzx	eax, BYTE PTR [rax]
	and	eax, 15
	mov	BYTE PTR -25[rbp], al
	movzx	eax, BYTE PTR -60[rbp]
	movzx	edx, BYTE PTR -48[rbp]
	sub	edx, 1
	cmp	eax, edx
	jne	.L36
	movzx	edx, BYTE PTR -44[rbp]
	mov	rax, QWORD PTR -72[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	jne	.L36
	cmp	BYTE PTR -25[rbp], 0
	jne	.L45
.L36:
	cmp	BYTE PTR -25[rbp], 0
	jne	.L37
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rdx
	mov	BYTE PTR 15[rax], 0
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 60
	mov	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	sal	rax, 56
	mov	rcx, rax
	movabs	rax, 1080863910568919040
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	sal	rax, 52
	mov	rcx, rax
	movabs	rax, 67553994410557440
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	sal	rax, 48
	mov	rcx, rax
	movabs	rax, 4222124650659840
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 4[rax]
	movzx	eax, al
	sal	rax, 44
	mov	rcx, rax
	movabs	rax, 263882790666240
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 5[rax]
	movzx	eax, al
	sal	rax, 40
	mov	rcx, rax
	movabs	rax, 16492674416640
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 6[rax]
	movzx	eax, al
	sal	rax, 36
	mov	rcx, rax
	movabs	rax, 1030792151040
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 7[rax]
	movzx	eax, al
	sal	rax, 32
	mov	rcx, rax
	movabs	rax, 64424509440
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 8[rax]
	movzx	eax, al
	sal	rax, 28
	mov	eax, eax
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 9[rax]
	movzx	eax, al
	sal	rax, 24
	and	eax, 251658240
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 10[rax]
	movzx	eax, al
	sal	rax, 20
	and	eax, 15728640
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 11[rax]
	movzx	eax, al
	sal	rax, 16
	and	eax, 983040
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	rax, 12
	movzx	eax, ax
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	sal	rax, 8
	and	eax, 3840
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 14[rax]
	movzx	eax, al
	sal	rax, 4
	movzx	eax, al
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 15[rax]
	movzx	eax, al
	and	eax, 15
	or	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L44
	movzx	eax, BYTE PTR -60[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	permutation
	mov	QWORD PTR [rbx], rax
	movzx	eax, BYTE PTR -60[rbp]
	add	eax, 1
	movzx	edx, al
	movzx	esi, BYTE PTR -48[rbp]
	mov	rdi, QWORD PTR 24[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, rdi
	mov	r8, QWORD PTR 16[rbp]
	mov	rdi, rax
	call	Linear_trails
	jmp	.L44
.L37:
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rdx
	mov	BYTE PTR 15[rax], 1
	jmp	.L38
.L40:
	movzx	eax, BYTE PTR -25[rbp]
	movzx	edx, BYTE PTR -60[rbp]
	mov	rcx, rdx
	sal	rcx, 4
	mov	rdx, QWORD PTR 16[rbp]
	add	rdx, rcx
	movzx	edx, BYTE PTR 15[rdx]
	movzx	edx, dl
	movsx	rdx, edx
	cdqe
	sal	rax, 4
	add	rdx, rax
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L39
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	sal	rax, 60
	mov	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 1[rax]
	movzx	eax, al
	sal	rax, 56
	mov	rcx, rax
	movabs	rax, 1080863910568919040
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 2[rax]
	movzx	eax, al
	sal	rax, 52
	mov	rcx, rax
	movabs	rax, 67553994410557440
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 3[rax]
	movzx	eax, al
	sal	rax, 48
	mov	rcx, rax
	movabs	rax, 4222124650659840
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 4[rax]
	movzx	eax, al
	sal	rax, 44
	mov	rcx, rax
	movabs	rax, 263882790666240
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 5[rax]
	movzx	eax, al
	sal	rax, 40
	mov	rcx, rax
	movabs	rax, 16492674416640
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 6[rax]
	movzx	eax, al
	sal	rax, 36
	mov	rcx, rax
	movabs	rax, 1030792151040
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 7[rax]
	movzx	eax, al
	sal	rax, 32
	mov	rcx, rax
	movabs	rax, 64424509440
	and	rax, rcx
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 8[rax]
	movzx	eax, al
	sal	rax, 28
	mov	eax, eax
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 9[rax]
	movzx	eax, al
	sal	rax, 24
	and	eax, 251658240
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 10[rax]
	movzx	eax, al
	sal	rax, 20
	and	eax, 15728640
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 11[rax]
	movzx	eax, al
	sal	rax, 16
	and	eax, 983040
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 12[rax]
	movzx	eax, al
	sal	rax, 12
	movzx	eax, ax
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 13[rax]
	movzx	eax, al
	sal	rax, 8
	and	eax, 3840
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 14[rax]
	movzx	eax, al
	sal	rax, 4
	movzx	eax, al
	or	rdx, rax
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	movzx	eax, BYTE PTR 15[rax]
	movzx	eax, al
	and	eax, 15
	or	rax, rdx
	mov	QWORD PTR -24[rbp], rax
	cmp	QWORD PTR -24[rbp], 0
	je	.L39
	movzx	eax, BYTE PTR -60[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -56[rbp]
	lea	rbx, [rdx+rax]
	mov	rax, QWORD PTR -24[rbp]
	mov	rdi, rax
	call	permutation
	mov	QWORD PTR [rbx], rax
	movzx	eax, BYTE PTR -60[rbp]
	add	eax, 1
	movzx	edx, al
	movzx	esi, BYTE PTR -48[rbp]
	mov	rdi, QWORD PTR 24[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	rax, QWORD PTR -56[rbp]
	mov	r9, rdi
	mov	r8, QWORD PTR 16[rbp]
	mov	rdi, rax
	call	Linear_trails
.L39:
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rdx
	movzx	edx, BYTE PTR 15[rax]
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rcx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rcx
	add	edx, edx
	mov	BYTE PTR 15[rax], dl
.L38:
	movzx	eax, BYTE PTR -60[rbp]
	sal	rax, 4
	mov	rdx, rax
	mov	rax, QWORD PTR 16[rbp]
	add	rax, rdx
	movzx	eax, BYTE PTR 15[rax]
	cmp	al, 15
	jbe	.L40
	jmp	.L44
.L41:
	nop
	jmp	.L24
.L44:
	nop
	jmp	.L24
.L45:
	nop
.L24:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	combination, .-combination
	.section	.rodata
.LC2:
	.string	"Progress: %02.3lf%%\n"
	.text
	.globl	Linear_trails
	.type	Linear_trails, @function
Linear_trails:
.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, 80
	mov	QWORD PTR -40[rbp], rdi
	mov	eax, edx
	mov	QWORD PTR -56[rbp], rcx
	mov	QWORD PTR -64[rbp], r8
	mov	QWORD PTR -72[rbp], r9
	mov	edx, esi
	mov	BYTE PTR -44[rbp], dl
	mov	BYTE PTR -48[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 56
	mov	BYTE PTR -24[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 48
	mov	BYTE PTR -23[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 40
	mov	BYTE PTR -22[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 32
	mov	BYTE PTR -21[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 24
	mov	BYTE PTR -20[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 16
	mov	BYTE PTR -19[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	shr	rax, 8
	mov	BYTE PTR -18[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	sal	rax, 3
	lea	rdx, -8[rax]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	BYTE PTR -17[rbp], al
	movzx	eax, BYTE PTR -48[rbp]
	cmp	al, BYTE PTR -44[rbp]
	jnb	.L47
	movzx	esi, BYTE PTR -48[rbp]
	movzx	ecx, BYTE PTR -44[rbp]
	mov	rdi, QWORD PTR -56[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	lea	rax, -24[rbp]
	push	QWORD PTR -72[rbp]
	push	QWORD PTR -64[rbp]
	mov	r9, rdi
	mov	r8d, esi
	mov	esi, 0
	mov	rdi, rax
	call	combination
	add	rsp, 16
	cmp	BYTE PTR -48[rbp], 2
	jne	.L47
	fld	TBYTE PTR progress_number[rip]
	fld1
	faddp	st(1), st
	fstp	TBYTE PTR progress_number[rip]
	fld	TBYTE PTR progress_number[rip]
	fld	TBYTE PTR active_sbox1[rip]
	fdivp	st(1), st
	fld	TBYTE PTR .LC1[rip]
	fmulp	st(1), st
	fstp	QWORD PTR -80[rbp]
	movsd	xmm0, QWORD PTR -80[rbp]
	lea	rdi, .LC2[rip]
	mov	eax, 1
	call	printf@PLT
.L47:
	movzx	eax, BYTE PTR -48[rbp]
	cmp	al, BYTE PTR -44[rbp]
	jne	.L65
	mov	DWORD PTR -32[rbp], 0
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 56
	mov	BYTE PTR -16[rbp], al
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 48
	mov	BYTE PTR -15[rbp], al
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 40
	mov	BYTE PTR -14[rbp], al
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 32
	mov	BYTE PTR -13[rbp], al
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 24
	mov	BYTE PTR -12[rbp], al
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 16
	mov	BYTE PTR -11[rbp], al
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	shr	rax, 8
	mov	BYTE PTR -10[rbp], al
	movzx	eax, BYTE PTR -44[rbp]
	lea	rdx, 0[0+rax*8]
	mov	rax, QWORD PTR -40[rbp]
	add	rax, rdx
	mov	rax, QWORD PTR [rax]
	mov	rdi, rax
	call	reverse_permutation
	mov	BYTE PTR -9[rbp], al
	mov	DWORD PTR -32[rbp], 0
	jmp	.L49
.L61:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	test	al, al
	jne	.L50
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	test	al, al
	jne	.L51
.L50:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 240
	test	eax, eax
	jne	.L52
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 240
	test	eax, eax
	jne	.L51
.L52:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	shr	al, 4
	movzx	edx, al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	shr	al, 4
	movzx	eax, al
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L66
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	jne	.L54
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	jne	.L51
.L54:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 15
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L67
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	test	al, al
	je	.L56
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	test	al, al
	je	.L51
.L56:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 240
	test	eax, eax
	je	.L57
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 240
	test	eax, eax
	je	.L51
.L57:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	shr	al, 4
	movzx	edx, al
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	shr	al, 4
	movzx	eax, al
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L68
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	je	.L59
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	je	.L51
.L59:
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -24[rbp+rax]
	movzx	eax, al
	and	eax, 15
	mov	edx, eax
	mov	eax, DWORD PTR -32[rbp]
	cdqe
	movzx	eax, BYTE PTR -16[rbp+rax]
	movzx	eax, al
	and	eax, 15
	movsx	rcx, eax
	movsx	rax, edx
	sal	rax, 4
	lea	rdx, [rax+rcx]
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L69
	add	DWORD PTR -32[rbp], 1
.L49:
	cmp	DWORD PTR -32[rbp], 7
	jle	.L61
	jmp	.L51
.L66:
	nop
	jmp	.L51
.L67:
	nop
	jmp	.L51
.L68:
	nop
	jmp	.L51
.L69:
	nop
.L51:
	cmp	DWORD PTR -32[rbp], 7
	jle	.L65
	mov	rax, QWORD PTR trail_number[rip]
	add	rax, 1
	mov	QWORD PTR trail_number[rip], rax
	movzx	eax, BYTE PTR -44[rbp]
	mov	rdx, QWORD PTR -40[rbp]
	mov	rsi, rdx
	mov	edi, eax
	call	bias
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], 0
	jle	.L62
	neg	DWORD PTR -28[rbp]
.L62:
	pxor	xmm0, xmm0
	cvtsi2sd	xmm0, DWORD PTR -28[rbp]
	addsd	xmm0, xmm0
	mov	rax, QWORD PTR .LC3[rip]
	movapd	xmm1, xmm0
	movq	xmm0, rax
	call	pow@PLT
	movsd	QWORD PTR -80[rbp], xmm0
	fld	QWORD PTR -80[rbp]
	fld	TBYTE PTR overall_bias[rip]
	faddp	st(1), st
	fstp	TBYTE PTR overall_bias[rip]
	nop
.L65:
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L64
	call	__stack_chk_fail@PLT
.L64:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	Linear_trails, .-Linear_trails
	.section	.rodata
	.align 8
.LC6:
	.string	"How many rounds(2-32),otherwise quit: "
.LC7:
	.string	"%d"
.LC8:
	.string	"at+"
.LC9:
	.string	"Trails.txt"
.LC10:
	.string	"cannot open file"
	.align 8
.LC11:
	.string	"too many commandline arguments"
.LC12:
	.string	"Number of rounds: %d\n"
.LC13:
	.string	"Input mask:  "
.LC14:
	.string	"%llX"
.LC15:
	.string	"Input mask:  %016llX\n"
.LC16:
	.string	"Output mask: "
.LC17:
	.string	"Output mask: %016llX\n"
	.align 8
.LC20:
	.string	"Total %llu linear trails found\n Total overall bias: %.10Lf , which is 2^(%lf)\nQED\n"
	.text
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 928
	mov	DWORD PTR -900[rbp], edi
	mov	QWORD PTR -912[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -892[rbp], 0
	mov	QWORD PTR -880[rbp], 8
	mov	QWORD PTR -872[rbp], 0
	mov	QWORD PTR -856[rbp], 0
	mov	QWORD PTR -848[rbp], 0
	mov	BYTE PTR -893[rbp], 0
.L92:
	mov	QWORD PTR trail_number[rip], 0
	fldz
	fstp	TBYTE PTR overall_bias[rip]
	lea	rax, -560[rbp]
	mov	edx, 512
	mov	esi, 255
	mov	rdi, rax
	call	memset@PLT
	lea	rdi, .LC6[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -892[rbp]
	mov	rsi, rax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -892[rbp]
	cmp	eax, 1
	jle	.L71
	mov	eax, DWORD PTR -892[rbp]
	cmp	eax, 32
	jg	.L71
	cmp	DWORD PTR -900[rbp], 1
	jne	.L72
	lea	rsi, .LC8[rip]
	lea	rdi, .LC9[rip]
	call	fopen@PLT
	mov	QWORD PTR -864[rbp], rax
	cmp	QWORD PTR -864[rbp], 0
	jne	.L73
	lea	rdi, .LC10[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L72:
	cmp	DWORD PTR -900[rbp], 2
	jne	.L74
	mov	rax, QWORD PTR -912[rbp]
	add	rax, 8
	mov	rax, QWORD PTR [rax]
	lea	rsi, .LC8[rip]
	mov	rdi, rax
	call	fopen@PLT
	mov	QWORD PTR -864[rbp], rax
	cmp	QWORD PTR -864[rbp], 0
	jne	.L73
	lea	rdi, .LC10[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L74:
	lea	rdi, .LC11[rip]
	call	puts@PLT
	mov	edi, 0
	call	exit@PLT
.L73:
	mov	edx, DWORD PTR -892[rbp]
	mov	rax, QWORD PTR -864[rbp]
	lea	rsi, .LC12[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -864[rbp]
	mov	rdi, rax
	call	fflush@PLT
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -880[rbp]
	mov	rsi, rax
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	fld1
	fstp	TBYTE PTR progress_number[rip]
	mov	DWORD PTR -888[rbp], 0
	jmp	.L75
.L80:
	mov	rdx, QWORD PTR -880[rbp]
	mov	eax, DWORD PTR -888[rbp]
	sal	eax, 2
	mov	ecx, eax
	shr	rdx, cl
	mov	rax, rdx
	and	eax, 15
	mov	BYTE PTR -893[rbp], al
	cmp	BYTE PTR -893[rbp], 0
	je	.L76
	fldz
	fstp	TBYTE PTR active_sbox1[rip]
	mov	DWORD PTR -884[rbp], 0
	jmp	.L77
.L79:
	movzx	eax, BYTE PTR -893[rbp]
	mov	edx, DWORD PTR -884[rbp]
	movsx	rdx, edx
	cdqe
	sal	rax, 4
	add	rdx, rax
	lea	rax, biastable[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L78
	fld	TBYTE PTR active_sbox1[rip]
	fld1
	faddp	st(1), st
	fstp	TBYTE PTR active_sbox1[rip]
.L78:
	add	DWORD PTR -884[rbp], 1
.L77:
	cmp	DWORD PTR -884[rbp], 15
	jle	.L79
	fld	TBYTE PTR active_sbox1[rip]
	fld	TBYTE PTR progress_number[rip]
	fmulp	st(1), st
	fstp	TBYTE PTR progress_number[rip]
.L76:
	add	DWORD PTR -888[rbp], 1
.L75:
	cmp	DWORD PTR -888[rbp], 15
	jle	.L80
	fld	TBYTE PTR progress_number[rip]
	fstp	TBYTE PTR active_sbox1[rip]
	fldz
	fstp	TBYTE PTR progress_number[rip]
	mov	rdx, QWORD PTR -880[rbp]
	mov	rax, QWORD PTR -864[rbp]
	lea	rsi, .LC15[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -864[rbp]
	mov	rdi, rax
	call	fflush@PLT
	lea	rdi, .LC16[rip]
	mov	eax, 0
	call	printf@PLT
	lea	rax, -872[rbp]
	mov	rsi, rax
	lea	rdi, .LC14[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	rdx, QWORD PTR -872[rbp]
	mov	rax, QWORD PTR -864[rbp]
	lea	rsi, .LC17[rip]
	mov	rdi, rax
	mov	eax, 0
	call	fprintf@PLT
	mov	rax, QWORD PTR -864[rbp]
	mov	rdi, rax
	call	fflush@PLT
	mov	rax, QWORD PTR -880[rbp]
	mov	QWORD PTR -832[rbp], rax
	mov	eax, DWORD PTR -892[rbp]
	mov	rdx, QWORD PTR -872[rbp]
	cdqe
	mov	QWORD PTR -832[rbp+rax*8], rdx
	mov	rax, QWORD PTR -872[rbp]
	mov	rdi, rax
	call	reverse_permutation
	mov	QWORD PTR -848[rbp], rax
	mov	rax, QWORD PTR -848[rbp]
	shr	rax, 56
	mov	BYTE PTR -40[rbp], al
	mov	rax, QWORD PTR -848[rbp]
	shr	rax, 48
	mov	BYTE PTR -39[rbp], al
	mov	rax, QWORD PTR -848[rbp]
	shr	rax, 40
	mov	BYTE PTR -38[rbp], al
	mov	rax, QWORD PTR -848[rbp]
	shr	rax, 32
	mov	BYTE PTR -37[rbp], al
	mov	rax, QWORD PTR -848[rbp]
	shr	rax, 24
	mov	BYTE PTR -36[rbp], al
	mov	rax, QWORD PTR -848[rbp]
	shr	rax, 16
	mov	BYTE PTR -35[rbp], al
	mov	rax, QWORD PTR -848[rbp]
	shr	rax, 8
	mov	BYTE PTR -34[rbp], al
	mov	rax, QWORD PTR -848[rbp]
	mov	BYTE PTR -33[rbp], al
	mov	DWORD PTR -888[rbp], 0
	jmp	.L81
.L85:
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	movzx	eax, BYTE PTR -40[rbp+rax]
	shr	al, 4
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	je	.L82
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	mov	BYTE PTR -48[rbp+rax], -16
	jmp	.L83
.L82:
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	mov	BYTE PTR -48[rbp+rax], 0
.L83:
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	movzx	eax, BYTE PTR -40[rbp+rax]
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	je	.L84
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	movzx	eax, BYTE PTR -48[rbp+rax]
	or	eax, 15
	mov	edx, eax
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	mov	BYTE PTR -48[rbp+rax], dl
.L84:
	add	DWORD PTR -888[rbp], 1
.L81:
	cmp	DWORD PTR -888[rbp], 7
	jle	.L85
	movzx	eax, BYTE PTR -48[rbp]
	movzx	eax, al
	sal	rax, 56
	mov	rdx, rax
	movzx	eax, BYTE PTR -47[rbp]
	movzx	eax, al
	sal	rax, 48
	or	rdx, rax
	movzx	eax, BYTE PTR -46[rbp]
	movzx	eax, al
	sal	rax, 40
	or	rdx, rax
	movzx	eax, BYTE PTR -45[rbp]
	movzx	eax, al
	sal	rax, 32
	or	rdx, rax
	movzx	eax, BYTE PTR -44[rbp]
	movzx	eax, al
	sal	rax, 24
	or	rdx, rax
	movzx	eax, BYTE PTR -43[rbp]
	movzx	eax, al
	sal	rax, 16
	or	rdx, rax
	movzx	eax, BYTE PTR -42[rbp]
	movzx	eax, al
	sal	rax, 8
	or	rdx, rax
	movzx	eax, BYTE PTR -41[rbp]
	movzx	eax, al
	or	rax, rdx
	mov	rdi, rax
	call	reverse_permutation
	mov	QWORD PTR -856[rbp], rax
	mov	rax, QWORD PTR -856[rbp]
	shr	rax, 56
	mov	BYTE PTR -48[rbp], al
	mov	rax, QWORD PTR -856[rbp]
	shr	rax, 48
	mov	BYTE PTR -47[rbp], al
	mov	rax, QWORD PTR -856[rbp]
	shr	rax, 40
	mov	BYTE PTR -46[rbp], al
	mov	rax, QWORD PTR -856[rbp]
	shr	rax, 32
	mov	BYTE PTR -45[rbp], al
	mov	rax, QWORD PTR -856[rbp]
	shr	rax, 24
	mov	BYTE PTR -44[rbp], al
	mov	rax, QWORD PTR -856[rbp]
	shr	rax, 16
	mov	BYTE PTR -43[rbp], al
	mov	rax, QWORD PTR -856[rbp]
	shr	rax, 8
	mov	BYTE PTR -42[rbp], al
	mov	rax, QWORD PTR -856[rbp]
	mov	BYTE PTR -41[rbp], al
	mov	DWORD PTR -888[rbp], 0
	jmp	.L86
.L91:
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	movzx	eax, BYTE PTR -48[rbp+rax]
	shr	al, 4
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	je	.L87
	mov	eax, DWORD PTR -888[rbp]
	add	eax, eax
	cdqe
	mov	BYTE PTR -32[rbp+rax], 1
	jmp	.L88
.L87:
	mov	eax, DWORD PTR -888[rbp]
	add	eax, eax
	cdqe
	mov	BYTE PTR -32[rbp+rax], 0
.L88:
	mov	eax, DWORD PTR -888[rbp]
	cdqe
	movzx	eax, BYTE PTR -48[rbp+rax]
	movzx	eax, al
	and	eax, 15
	test	eax, eax
	je	.L89
	mov	eax, DWORD PTR -888[rbp]
	add	eax, eax
	add	eax, 1
	cdqe
	mov	BYTE PTR -32[rbp+rax], 1
	jmp	.L90
.L89:
	mov	eax, DWORD PTR -888[rbp]
	add	eax, eax
	add	eax, 1
	cdqe
	mov	BYTE PTR -32[rbp+rax], 0
.L90:
	add	DWORD PTR -888[rbp], 1
.L86:
	cmp	DWORD PTR -888[rbp], 7
	jle	.L91
	mov	eax, DWORD PTR -892[rbp]
	movzx	esi, al
	mov	rdi, QWORD PTR -864[rbp]
	lea	rcx, -560[rbp]
	lea	rdx, -32[rbp]
	lea	rax, -832[rbp]
	mov	r9, rdi
	mov	r8, rcx
	mov	rcx, rdx
	mov	edx, 1
	mov	rdi, rax
	call	Linear_trails
	fld	TBYTE PTR overall_bias[rip]
	fstp	QWORD PTR -920[rbp]
	movsd	xmm0, QWORD PTR .LC18[rip]
	movapd	xmm1, xmm0
	movsd	xmm0, QWORD PTR -920[rbp]
	call	pow@PLT
	movsd	QWORD PTR -920[rbp], xmm0
	fld	QWORD PTR -920[rbp]
	fstp	TBYTE PTR overall_bias[rip]
	fld	TBYTE PTR overall_bias[rip]
	fstp	QWORD PTR -920[rbp]
	movsd	xmm0, QWORD PTR -920[rbp]
	call	log@PLT
	movq	rax, xmm0
	mov	QWORD PTR -840[rbp], rax
	movsd	xmm0, QWORD PTR -840[rbp]
	movsd	xmm1, QWORD PTR .LC19[rip]
	divsd	xmm0, xmm1
	movq	rcx, xmm0
	fld	TBYTE PTR overall_bias[rip]
	mov	rdx, QWORD PTR trail_number[rip]
	mov	rax, QWORD PTR -864[rbp]
	lea	rsp, -16[rsp]
	fstp	TBYTE PTR [rsp]
	movq	xmm0, rcx
	lea	rsi, .LC20[rip]
	mov	rdi, rax
	mov	eax, 1
	call	fprintf@PLT
	add	rsp, 16
	mov	rax, QWORD PTR -864[rbp]
	mov	rdi, rax
	call	fflush@PLT
	mov	rax, QWORD PTR -864[rbp]
	mov	rdi, rax
	call	fclose@PLT
	jmp	.L92
.L71:
	mov	eax, 0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L94
	call	__stack_chk_fail@PLT
.L94:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.section	.rodata
	.align 16
.LC1:
	.long	0
	.long	-939524096
	.long	16389
	.long	0
	.align 8
.LC3:
	.long	0
	.long	1073741824
	.align 8
.LC18:
	.long	0
	.long	1071644672
	.align 8
.LC19:
	.long	-17155601
	.long	1072049730
	.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	"236170.c"
	.text
	.global	trail_number
	.bss
	.align	3
	.type	trail_number, %object
	.size	trail_number, 8
trail_number:
	.space	8
	.global	overall_bias
	.align	3
	.type	overall_bias, %object
	.size	overall_bias, 8
overall_bias:
	.space	8
	.global	active_sbox1
	.align	3
	.type	active_sbox1, %object
	.size	active_sbox1, 8
active_sbox1:
	.space	8
	.global	progress_number
	.align	3
	.type	progress_number, %object
	.size	progress_number, 8
progress_number:
	.space	8
	.global	sbox
	.section	.rodata
	.align	2
	.type	sbox, %object
	.size	sbox, 16
sbox:
	.ascii	"\014\005\006\013\011\000\012\015\003\016\017\010\004"
	.ascii	"\007\001\002"
	.global	ptable
	.align	2
	.type	ptable, %object
	.size	ptable, 64
ptable:
	.ascii	"\000\020 0\001\021!1\002\022\"2\003\023#3\004\024$4"
	.ascii	"\005\025%5\006\026&6\007\027'7\010\030(8\011\031)9\012"
	.ascii	"\032*:\013\033+;\014\034,<\015\035-=\016\036.>\017\037"
	.ascii	"/?"
	.global	rptable
	.align	2
	.type	rptable, %object
	.size	rptable, 64
rptable:
	.ascii	"\000\004\010\014\020\024\030\034 $(,048<\001\005\011"
	.ascii	"\015\021\025\031\035!%)-159=\002\006\012\016\022\026"
	.ascii	"\032\036\"&*.26:>\003\007\013\017\023\027\033\037#'"
	.ascii	"+/37;?"
	.global	biastable
	.align	2
	.type	biastable, %object
	.size	biastable, 256
biastable:
	.ascii	"\010\000\000\000\000\000\000\000\000\000\000\000\000"
	.ascii	"\000\000\000"
	.ascii	"\000\000\000\000\000\374\000\374\000\000\000\000\000"
	.ascii	"\374\000\004"
	.ascii	"\000\000\002\002\376\376\000\000\002\376\000\004\000"
	.ascii	"\004\376\002"
	.ascii	"\000\000\002\002\002\376\374\000\376\002\374\000\000"
	.ascii	"\000\376\376"
	.ascii	"\000\000\376\002\376\376\000\004\376\376\000\374\000"
	.ascii	"\000\376\002"
	.ascii	"\000\000\376\002\376\002\000\000\002\002\374\000\004"
	.ascii	"\000\002\002"
	.ascii	"\000\000\000\374\000\000\374\000\000\374\000\000\004"
	.ascii	"\000\000\000"
	.ascii	"\000\000\000\004\004\000\000\000\000\374\000\000\000"
	.ascii	"\000\004\000"
	.ascii	"\000\000\002\376\000\000\376\002\376\002\000\000\376"
	.ascii	"\002\004\004"
	.ascii	"\000\004\376\376\000\000\002\376\376\376\374\000\376"
	.ascii	"\002\000\000"
	.ascii	"\000\000\004\000\002\002\002\376\000\000\000\374\002"
	.ascii	"\002\376\002"
	.ascii	"\000\374\000\000\376\376\002\376\374\000\000\000\002"
	.ascii	"\002\002\376"
	.ascii	"\000\000\000\000\376\376\376\376\004\000\000\374\376"
	.ascii	"\002\002\376"
	.ascii	"\000\004\004\000\376\376\002\002\000\000\000\000\002"
	.ascii	"\376\002\376"
	.ascii	"\000\000\002\002\374\004\376\376\376\376\000\000\376"
	.ascii	"\376\000\000"
	.ascii	"\000\004\376\002\000\000\376\376\376\002\004\000\002"
	.ascii	"\002\000\000"
	.text
	.align	2
	.global	permutation
	.syntax unified
	.arm
	.fpu softvfp
	.type	permutation, %function
permutation:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #44
	str	r0, [fp, #-68]
	str	r1, [fp, #-64]
	mov	r1, #0
	strb	r1, [fp, #-53]
	mov	r0, #0
	mov	r1, #0
	str	r0, [fp, #-52]
	str	r1, [fp, #-48]
	mov	r0, #0
	mov	r1, #0
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	mov	r1, #0
	strb	r1, [fp, #-53]
	b	.L2
.L4:
	mov	r0, #1
	mov	r1, #0
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	ldrb	ip, [fp, #-53]	@ zero_extendqisi2
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	sub	r10, ip, #32
	rsb	lr, ip, #32
	lsl	r5, r1, ip
	orr	r5, r5, r0, lsl r10
	orr	r5, r5, r0, lsr lr
	lsl	r4, r0, ip
	str	r4, [fp, #-44]
	str	r5, [fp, #-40]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	str	r0, [fp, #-76]
	str	r1, [fp, #-72]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	ldr	ip, [fp, #-76]
	and	r6, ip, r0
	ldr	ip, [fp, #-72]
	and	r7, ip, r1
	orrs	r1, r6, r7
	beq	.L3
	mov	r0, #1
	mov	r1, #0
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	ldrb	r1, [fp, #-53]	@ zero_extendqisi2
	rsb	r1, r1, #63
	ldr	r0, .L6
	ldrb	r1, [r0, r1]	@ zero_extendqisi2
	rsb	ip, r1, #63
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	sub	r10, ip, #32
	rsb	lr, ip, #32
	lsl	r3, r1, ip
	orr	r3, r3, r0, lsl r10
	orr	r3, r3, r0, lsr lr
	lsl	r2, r0, ip
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	orr	r8, r0, r2
	orr	r9, r1, r3
	str	r8, [fp, #-52]
	str	r9, [fp, #-48]
.L3:
	ldrb	r1, [fp, #-53]	@ zero_extendqisi2
	add	r1, r1, #1
	strb	r1, [fp, #-53]
.L2:
	ldrb	r1, [fp, #-53]	@ zero_extendqisi2
	cmp	r1, #63
	bls	.L4
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L7:
	.align	2
.L6:
	.word	ptable
	.size	permutation, .-permutation
	.align	2
	.global	reverse_permutation
	.syntax unified
	.arm
	.fpu softvfp
	.type	reverse_permutation, %function
reverse_permutation:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	add	fp, sp, #32
	sub	sp, sp, #44
	str	r0, [fp, #-68]
	str	r1, [fp, #-64]
	mov	r1, #0
	strb	r1, [fp, #-53]
	mov	r0, #0
	mov	r1, #0
	str	r0, [fp, #-52]
	str	r1, [fp, #-48]
	mov	r0, #0
	mov	r1, #0
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	mov	r1, #0
	strb	r1, [fp, #-53]
	b	.L9
.L11:
	mov	r0, #1
	mov	r1, #0
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	ldrb	ip, [fp, #-53]	@ zero_extendqisi2
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	sub	r10, ip, #32
	rsb	lr, ip, #32
	lsl	r5, r1, ip
	orr	r5, r5, r0, lsl r10
	orr	r5, r5, r0, lsr lr
	lsl	r4, r0, ip
	str	r4, [fp, #-44]
	str	r5, [fp, #-40]
	sub	r1, fp, #68
	ldmia	r1, {r0-r1}
	str	r0, [fp, #-76]
	str	r1, [fp, #-72]
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	ldr	ip, [fp, #-76]
	and	r6, ip, r0
	ldr	ip, [fp, #-72]
	and	r7, ip, r1
	orrs	r1, r6, r7
	beq	.L10
	mov	r0, #1
	mov	r1, #0
	str	r0, [fp, #-44]
	str	r1, [fp, #-40]
	ldrb	r1, [fp, #-53]	@ zero_extendqisi2
	rsb	r1, r1, #63
	ldr	r0, .L13
	ldrb	r1, [r0, r1]	@ zero_extendqisi2
	rsb	ip, r1, #63
	sub	r1, fp, #44
	ldmia	r1, {r0-r1}
	sub	r10, ip, #32
	rsb	lr, ip, #32
	lsl	r3, r1, ip
	orr	r3, r3, r0, lsl r10
	orr	r3, r3, r0, lsr lr
	lsl	r2, r0, ip
	sub	r1, fp, #52
	ldmia	r1, {r0-r1}
	orr	r8, r0, r2
	orr	r9, r1, r3
	str	r8, [fp, #-52]
	str	r9, [fp, #-48]
.L10:
	ldrb	r1, [fp, #-53]	@ zero_extendqisi2
	add	r1, r1, #1
	strb	r1, [fp, #-53]
.L9:
	ldrb	r1, [fp, #-53]	@ zero_extendqisi2
	cmp	r1, #63
	bls	.L11
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	sub	sp, fp, #32
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L14:
	.align	2
.L13:
	.word	rptable
	.size	reverse_permutation, .-reverse_permutation
	.section	.rodata
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	bias
	.syntax unified
	.arm
	.fpu softvfp
	.type	bias, %function
bias:
	@ args = 0, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #56
	mov	r3, r0
	str	r1, [fp, #-60]
	strb	r3, [fp, #-53]
	ldr	r3, .L28
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r3, #1
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L16
.L25:
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #24
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-24]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #16
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-23]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #8
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-22]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-21]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #24
	orr	r2, r2, r1, lsl #8
	lsr	r3, r1, #24
	and	r3, r2, #255
	strb	r3, [fp, #-20]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #16
	orr	r2, r2, r1, lsl #16
	lsr	r3, r1, #16
	and	r3, r2, #255
	strb	r3, [fp, #-19]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	and	r3, r2, #255
	strb	r3, [fp, #-18]
	ldr	r3, [fp, #-32]
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	and	r3, r2, #255
	strb	r3, [fp, #-17]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #24
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-16]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #16
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-15]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #8
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-14]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-13]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #24
	orr	r2, r2, r1, lsl #8
	lsr	r3, r1, #24
	and	r3, r2, #255
	strb	r3, [fp, #-12]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #16
	orr	r2, r2, r1, lsl #16
	lsr	r3, r1, #16
	and	r3, r2, #255
	strb	r3, [fp, #-11]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	and	r3, r2, #255
	strb	r3, [fp, #-10]
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	lsl	r3, r3, #3
	ldr	r2, [fp, #-60]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, r0
	mov	r3, r1
	and	r3, r2, #255
	strb	r3, [fp, #-9]
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L17
.L24:
	sub	r2, fp, #24
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L18
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	sub	r2, fp, #24
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	sub	r1, fp, #16
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L28+4
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bge	.L19
	ldr	r3, [fp, #-40]
	rsb	r3, r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	str	r3, [fp, #-36]
.L19:
	ldr	r3, [fp, #-40]
	cmp	r3, #2
	bne	.L20
	ldr	r3, [fp, #-48]
	add	r3, r3, #3
	str	r3, [fp, #-48]
.L20:
	ldr	r3, [fp, #-40]
	cmp	r3, #4
	bne	.L18
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
.L18:
	sub	r2, fp, #24
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #240
	cmp	r3, #0
	beq	.L21
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
	sub	r2, fp, #24
	ldr	r3, [fp, #-28]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	and	r2, r3, #15
	sub	r1, fp, #16
	ldr	r3, [fp, #-28]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	and	r3, r3, #15
	ldr	r1, .L28+4
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	bge	.L22
	ldr	r3, [fp, #-40]
	rsb	r3, r3, #0
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	str	r3, [fp, #-36]
.L22:
	ldr	r3, [fp, #-40]
	cmp	r3, #2
	bne	.L23
	ldr	r3, [fp, #-48]
	add	r3, r3, #3
	str	r3, [fp, #-48]
.L23:
	ldr	r3, [fp, #-40]
	cmp	r3, #4
	bne	.L21
	ldr	r3, [fp, #-48]
	add	r3, r3, #2
	str	r3, [fp, #-48]
.L21:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L17:
	ldr	r3, [fp, #-28]
	cmp	r3, #7
	ble	.L24
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L16:
	ldrb	r3, [fp, #-53]	@ zero_extendqisi2
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L25
	ldr	r3, [fp, #-48]
	add	r2, r3, #1
	ldr	r3, [fp, #-44]
	sub	r2, r2, r3
	ldr	r3, [fp, #-36]
	mul	r3, r2, r3
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r2, .L28
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L27
	bl	__stack_chk_fail
.L27:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L29:
	.align	2
.L28:
	.word	.LC0
	.word	biastable
	.size	bias, .-bias
	.align	2
	.global	combination
	.syntax unified
	.arm
	.fpu softvfp
	.type	combination, %function
combination:
	@ args = 16, pretend = 0, frame = 528
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #544
	str	r0, [fp, #-48]
	str	r2, [fp, #-56]
	mov	r2, r3
	mov	r3, r1
	strb	r3, [fp, #-49]
	mov	r3, r2
	strb	r3, [fp, #-50]
	mov	r3, #0
	strb	r3, [fp, #-38]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-36]
	str	r3, [fp, #-32]
	mov	r3, #0
	strb	r3, [fp, #-37]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r3, #14
	bhi	.L31
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r1, r3, r2
	ldrb	r2, [fp, #-49]	@ zero_extendqisi2
	mov	r3, #1
	strb	r3, [r1, r2]
	b	.L32
.L40:
	ldrb	r3, [fp, #-49]
	and	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	bne	.L33
	mov	r3, #4
	strb	r3, [fp, #-38]
	b	.L34
.L33:
	mov	r3, #0
	strb	r3, [fp, #-38]
.L34:
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-48]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldrb	r3, [fp, #-38]	@ zero_extendqisi2
	asr	r3, r2, r3
	and	r3, r3, #255
	and	r3, r3, #15
	strb	r3, [fp, #-37]
	ldrb	r2, [fp, #4]	@ zero_extendqisi2
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #1
	cmp	r2, r3
	bne	.L35
	ldrb	r2, [fp, #-49]	@ zero_extendqisi2
	ldr	r3, [fp, #8]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L35
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L47
.L35:
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L37
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r1, r3, r2
	ldrb	r2, [fp, #-49]	@ zero_extendqisi2
	mov	r3, #0
	strb	r3, [r1, r2]
	b	.L38
.L37:
	ldrb	r0, [fp, #-37]	@ zero_extendqisi2
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r2, r3, r2
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L52
	lsl	r3, r0, #4
	add	r3, r2, r3
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L48
.L38:
	ldrb	r3, [fp, #-49]
	add	r3, r3, #1
	and	r1, r3, #255
	ldrb	r2, [fp, #-50]	@ zero_extendqisi2
	ldr	r3, [fp, #16]
	str	r3, [sp, #12]
	ldr	r3, [fp, #12]
	str	r3, [sp, #8]
	ldr	r3, [fp, #8]
	str	r3, [sp, #4]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-56]
	ldr	r0, [fp, #-48]
	bl	combination
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r2, r3, r2
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L49
	b	.L39
.L48:
	nop
.L39:
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r2, r3, r2
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldrb	r0, [r2, r3]	@ zero_extendqisi2
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r1, r3, r2
	ldrb	r2, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r0, #1
	and	r3, r3, #255
	strb	r3, [r1, r2]
.L32:
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r2, r3, r2
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldrb	r3, [r2, r3]	@ zero_extendqisi2
	cmp	r3, #15
	bls	.L40
	b	.L31
.L49:
	nop
.L31:
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r3, #15
	bne	.L50
	ldr	r3, [fp, #-48]
	add	r3, r3, #7
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	strb	r3, [fp, #-37]
	ldrb	r2, [fp, #4]	@ zero_extendqisi2
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #1
	cmp	r2, r3
	bne	.L42
	ldrb	r2, [fp, #-49]	@ zero_extendqisi2
	ldr	r3, [fp, #8]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L42
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L51
.L42:
	ldrb	r3, [fp, #-37]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L43
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r2, r3, r2
	mov	r3, #0
	strb	r3, [r2, #15]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r4, #0
	mov	r5, #0
	lsl	r5, r2, #28
	mov	r4, #0
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #24
	mov	r0, #0
	mov	r2, #0
	mov	r3, #251658240
	and	r6, r0, r2
	and	r7, r1, r3
	orr	r3, r4, r6
	str	r3, [fp, #-68]
	orr	r3, r5, r7
	str	r3, [fp, #-64]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #20
	mov	r0, #0
	mov	r2, #0
	mov	r3, #15728640
	and	r8, r0, r2
	and	r9, r1, r3
	sub	r4, fp, #68
	ldmia	r4, {r3-r4}
	mov	r2, r3
	orr	r2, r2, r8
	str	r2, [fp, #-76]
	mov	r3, r4
	orr	r3, r3, r9
	str	r3, [fp, #-72]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #16
	mov	r0, #0
	mov	r2, #0
	mov	r3, #983040
	and	ip, r0, r2
	str	ip, [fp, #-84]
	and	r3, r1, r3
	str	r3, [fp, #-80]
	sub	r2, fp, #76
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #84
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-92]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-88]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #12
	mov	r0, #0
	mov	r2, #0
	mov	r3, #61440
	and	ip, r0, r2
	str	ip, [fp, #-100]
	and	r3, r1, r3
	str	r3, [fp, #-96]
	sub	r2, fp, #92
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #100
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-108]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-104]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #8
	mov	r0, #0
	mov	r2, #0
	mov	r3, #3840
	and	ip, r0, r2
	str	ip, [fp, #-116]
	and	r3, r1, r3
	str	r3, [fp, #-112]
	sub	r2, fp, #108
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #116
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-124]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-120]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #4
	mov	r0, #0
	mov	r2, #0
	mov	r3, #240
	and	ip, r0, r2
	str	ip, [fp, #-132]
	and	r3, r1, r3
	str	r3, [fp, #-128]
	sub	r2, fp, #124
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #132
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-140]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-136]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	mov	r2, #0
	mov	r3, #15
	and	ip, r0, r2
	str	ip, [fp, #-148]
	and	r3, r1, r3
	str	r3, [fp, #-144]
	sub	r2, fp, #140
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #148
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-156]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-152]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	lsr	r1, r2, #4
	str	r1, [fp, #-160]
	lsl	r3, r2, #28
	str	r3, [fp, #-164]
	mvn	r2, #0
	mov	r3, #0
	sub	r1, fp, #164
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-172]
	and	r1, r1, r3
	str	r1, [fp, #-168]
	sub	r2, fp, #156
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #172
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-180]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-176]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #9]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	lsr	r1, r2, #8
	str	r1, [fp, #-184]
	lsl	r3, r2, #24
	str	r3, [fp, #-188]
	mov	r2, #251658240
	mov	r3, #0
	sub	r1, fp, #188
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-196]
	and	r1, r1, r3
	str	r1, [fp, #-192]
	sub	r2, fp, #180
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #196
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-204]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-200]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #10]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #20
	orr	r1, r1, r2, lsr #12
	lsl	r0, r2, #20
	mov	r2, #15728640
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-212]
	and	r3, r1, r3
	str	r3, [fp, #-208]
	sub	r2, fp, #204
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #212
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-220]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-216]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #11]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	mov	r2, #983040
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-228]
	and	r3, r1, r3
	str	r3, [fp, #-224]
	sub	r2, fp, #220
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #228
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-236]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-232]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #12
	orr	r1, r1, r2, lsr #20
	lsl	r0, r2, #12
	ldr	r2, .L52+4
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-244]
	and	r3, r1, r3
	str	r3, [fp, #-240]
	sub	r2, fp, #236
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #244
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-252]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-248]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	mov	r2, #3840
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-260]
	and	r3, r1, r3
	str	r3, [fp, #-256]
	sub	r2, fp, #252
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #260
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-268]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-264]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r3, r3, #4
	ldr	r2, [fp, #12]
	add	r3, r2, r3
	ldrb	r3, [r3, #14]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #4
	orr	r1, r1, r2, lsr #28
	lsl	r0, r2, #4
	mov	r2, #255
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-276]
	and	r3, r1, r3
	str	r3, [fp, #-272]
	sub	r2, fp, #268
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #276
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-284]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-280]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r3, r3, #4
	ldr	r2, [fp, #12]
	add	r3, r2, r3
	ldrb	r3, [r3, #15]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #15
	mov	r1, #0
	and	ip, r2, r0
	str	ip, [fp, #-292]
	and	r3, r3, r1
	str	r3, [fp, #-288]
	sub	r2, fp, #284
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #292
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-548]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-544]
	sub	r4, fp, #548
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	beq	.L50
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-56]
	add	r4, r2, r3
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	permutation
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldrb	r3, [fp, #4]
	add	r3, r3, #1
	and	r2, r3, #255
	ldrb	r1, [fp, #-50]	@ zero_extendqisi2
	ldr	r3, [fp, #16]
	str	r3, [sp, #4]
	ldr	r3, [fp, #12]
	str	r3, [sp]
	ldr	r3, [fp, #8]
	ldr	r0, [fp, #-56]
	bl	Linear_trails
	b	.L50
.L43:
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r2, r3, r2
	mov	r3, #1
	strb	r3, [r2, #15]
	b	.L44
.L53:
	.align	2
.L52:
	.word	biastable
	.word	65535
.L46:
	ldrb	r0, [fp, #-37]	@ zero_extendqisi2
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #15]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L52
	lsl	r3, r0, #4
	add	r3, r2, r3
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L45
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r4, #0
	mov	r5, #0
	lsl	r5, r2, #28
	mov	r4, #0
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #24
	mov	r0, #0
	mov	r2, #0
	mov	r3, #251658240
	and	ip, r0, r2
	str	ip, [fp, #-300]
	and	r3, r1, r3
	str	r3, [fp, #-296]
	sub	r3, fp, #300
	ldmia	r3, {r2-r3}
	mov	r1, r2
	orr	r1, r4, r1
	str	r1, [fp, #-308]
	orr	r3, r5, r3
	str	r3, [fp, #-304]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #20
	mov	r0, #0
	mov	r2, #0
	mov	r3, #15728640
	and	ip, r0, r2
	str	ip, [fp, #-316]
	and	r3, r1, r3
	str	r3, [fp, #-312]
	sub	r2, fp, #308
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #316
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-324]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-320]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #16
	mov	r0, #0
	mov	r2, #0
	mov	r3, #983040
	and	ip, r0, r2
	str	ip, [fp, #-332]
	and	r3, r1, r3
	str	r3, [fp, #-328]
	sub	r2, fp, #324
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #332
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-340]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-336]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #12
	mov	r0, #0
	mov	r2, #0
	mov	r3, #61440
	and	ip, r0, r2
	str	ip, [fp, #-348]
	and	r3, r1, r3
	str	r3, [fp, #-344]
	sub	r2, fp, #340
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #348
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-356]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-352]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #8
	mov	r0, #0
	mov	r2, #0
	mov	r3, #3840
	and	ip, r0, r2
	str	ip, [fp, #-364]
	and	r3, r1, r3
	str	r3, [fp, #-360]
	sub	r2, fp, #356
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #364
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-372]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-368]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #4
	mov	r0, #0
	mov	r2, #0
	mov	r3, #240
	and	ip, r0, r2
	str	ip, [fp, #-380]
	and	r3, r1, r3
	str	r3, [fp, #-376]
	sub	r2, fp, #372
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #380
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-388]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-384]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	mov	r2, #0
	mov	r3, #15
	and	ip, r0, r2
	str	ip, [fp, #-396]
	and	r3, r1, r3
	str	r3, [fp, #-392]
	sub	r2, fp, #388
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #396
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-404]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-400]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	lsr	r1, r2, #4
	str	r1, [fp, #-408]
	lsl	r3, r2, #28
	str	r3, [fp, #-412]
	mvn	r2, #0
	mov	r3, #0
	sub	r1, fp, #412
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-420]
	and	r3, r1, r3
	str	r3, [fp, #-416]
	sub	r2, fp, #404
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #420
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-428]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-424]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #9]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	lsr	r1, r2, #8
	str	r1, [fp, #-432]
	lsl	r3, r2, #24
	str	r3, [fp, #-436]
	mov	r2, #251658240
	mov	r3, #0
	sub	r1, fp, #436
	ldmia	r1, {r0-r1}
	mov	ip, r0
	and	ip, ip, r2
	str	ip, [fp, #-444]
	and	r3, r1, r3
	str	r3, [fp, #-440]
	sub	r2, fp, #428
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #444
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-452]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-448]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #10]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #20
	orr	r1, r1, r2, lsr #12
	lsl	r0, r2, #20
	mov	r2, #15728640
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-460]
	and	r3, r1, r3
	str	r3, [fp, #-456]
	sub	r2, fp, #452
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #460
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-468]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-464]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #11]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	mov	r2, #983040
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-476]
	and	r3, r1, r3
	str	r3, [fp, #-472]
	sub	r2, fp, #468
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #476
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-484]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-480]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #12]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #12
	orr	r1, r1, r2, lsr #20
	lsl	r0, r2, #12
	ldr	r2, .L52+4
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-492]
	and	r3, r1, r3
	str	r3, [fp, #-488]
	sub	r2, fp, #484
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #492
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-500]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-496]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	mov	r2, #3840
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-508]
	and	r3, r1, r3
	str	r3, [fp, #-504]
	sub	r2, fp, #500
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #508
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-516]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-512]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #14]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #4
	orr	r1, r1, r2, lsr #28
	lsl	r0, r2, #4
	mov	r2, #255
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-524]
	and	r3, r1, r3
	str	r3, [fp, #-520]
	sub	r2, fp, #516
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #524
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-532]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-528]
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #15]	@ zero_extendqisi2
	and	r0, r3, #255
	mov	r1, #0
	mov	r2, #15
	mov	r3, #0
	and	ip, r0, r2
	str	ip, [fp, #-540]
	and	r3, r1, r3
	str	r3, [fp, #-536]
	sub	r2, fp, #532
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #540
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-556]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-552]
	sub	r4, fp, #556
	ldmia	r4, {r3-r4}
	str	r3, [fp, #-36]
	str	r4, [fp, #-32]
	sub	r3, fp, #36
	ldmia	r3, {r2-r3}
	orrs	r3, r2, r3
	beq	.L45
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #3
	ldr	r3, [fp, #-56]
	add	r4, r3, r2
	sub	r1, fp, #36
	ldmia	r1, {r0-r1}
	bl	permutation
	mov	r2, r0
	mov	r3, r1
	stm	r4, {r2-r3}
	ldrb	r3, [fp, #4]
	add	r3, r3, #1
	and	r2, r3, #255
	ldrb	r1, [fp, #-50]	@ zero_extendqisi2
	ldr	r3, [fp, #16]
	str	r3, [sp, #4]
	ldr	r3, [fp, #12]
	str	r3, [sp]
	ldr	r3, [fp, #8]
	ldr	r0, [fp, #-56]
	bl	Linear_trails
.L45:
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r1, [r3, #15]	@ zero_extendqisi2
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r2, r3, r2
	lsl	r3, r1, #1
	and	r3, r3, #255
	strb	r3, [r2, #15]
.L44:
	ldrb	r3, [fp, #4]	@ zero_extendqisi2
	lsl	r2, r3, #4
	ldr	r3, [fp, #12]
	add	r3, r3, r2
	ldrb	r3, [r3, #15]	@ zero_extendqisi2
	cmp	r3, #15
	bls	.L46
	b	.L50
.L47:
	nop
	b	.L30
.L50:
	nop
	b	.L30
.L51:
	nop
.L30:
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
	.size	combination, .-combination
	.global	__aeabi_dadd
	.global	__aeabi_ddiv
	.global	__aeabi_dmul
	.section	.rodata
	.align	2
.LC1:
	.ascii	"Progress: %02.3lf%%\012\000"
	.global	__aeabi_i2d
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	Linear_trails
	.syntax unified
	.arm
	.fpu softvfp
	.type	Linear_trails, %function
Linear_trails:
	@ args = 8, pretend = 0, frame = 56
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #72
	str	r0, [fp, #-48]
	str	r3, [fp, #-56]
	mov	r3, r1
	strb	r3, [fp, #-49]
	mov	r3, r2
	strb	r3, [fp, #-50]
	ldr	r3, [fp, #4]
	str	r3, [fp, #-60]
	ldr	r3, [fp, #8]
	str	r3, [fp, #-64]
	ldr	r3, .L78
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #24
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-32]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #16
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-31]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #8
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-30]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-29]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #24
	orr	r2, r2, r1, lsl #8
	lsr	r3, r1, #24
	and	r3, r2, #255
	strb	r3, [fp, #-28]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #16
	orr	r2, r2, r1, lsl #16
	lsr	r3, r1, #16
	and	r3, r2, #255
	strb	r3, [fp, #-27]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	and	r3, r2, #255
	strb	r3, [fp, #-26]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	sub	r3, r3, #-536870911
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	and	r3, r2, #255
	strb	r3, [fp, #-25]
	ldrb	r2, [fp, #-50]	@ zero_extendqisi2
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r2, r3
	bcs	.L55
	ldrb	r2, [fp, #-49]	@ zero_extendqisi2
	sub	r0, fp, #32
	ldr	r3, [fp, #-64]
	str	r3, [sp, #12]
	ldr	r3, [fp, #-60]
	str	r3, [sp, #8]
	ldr	r3, [fp, #-56]
	str	r3, [sp, #4]
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-48]
	mov	r1, #0
	bl	combination
	ldrb	r3, [fp, #-50]	@ zero_extendqisi2
	cmp	r3, #2
	bne	.L55
	ldr	r3, .L78+4
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L78+8
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L78+4
	stm	r1, {r2-r3}
	ldr	r3, .L78+4
	ldmia	r3, {r0-r1}
	ldr	r3, .L78+12
	ldmia	r3, {r2-r3}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	ldr	r3, .L78+16
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	ldr	r0, .L78+20
	bl	printf
.L55:
	ldrb	r2, [fp, #-50]	@ zero_extendqisi2
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	cmp	r2, r3
	bne	.L73
	mov	r3, #0
	str	r3, [fp, #-40]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #24
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-24]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #16
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-23]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r1, #8
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-22]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	and	r3, r2, #255
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #24
	orr	r2, r2, r1, lsl #8
	lsr	r3, r1, #24
	and	r3, r2, #255
	strb	r3, [fp, #-20]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #16
	orr	r2, r2, r1, lsl #16
	lsr	r3, r1, #16
	and	r3, r2, #255
	strb	r3, [fp, #-19]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, #0
	mov	r3, #0
	lsr	r2, r0, #8
	orr	r2, r2, r1, lsl #24
	lsr	r3, r1, #8
	and	r3, r2, #255
	strb	r3, [fp, #-18]
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	lsl	r3, r3, #3
	ldr	r2, [fp, #-48]
	add	r3, r2, r3
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	mov	r2, r0
	mov	r3, r1
	and	r3, r2, #255
	strb	r3, [fp, #-17]
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L57
.L69:
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L58
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L59
.L58:
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #240
	cmp	r3, #0
	bne	.L60
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #240
	cmp	r3, #0
	bne	.L59
.L60:
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r0, r3
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r2, .L78+24
	lsl	r3, r0, #4
	add	r3, r2, r3
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L74
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	cmp	r3, #0
	bne	.L62
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	cmp	r3, #0
	bne	.L59
.L62:
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	sub	r1, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L78+24
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L75
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L64
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L59
.L64:
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #240
	cmp	r3, #0
	beq	.L65
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #240
	cmp	r3, #0
	beq	.L59
.L65:
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r0, r3
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r1, r3
	ldr	r2, .L78+24
	lsl	r3, r0, #4
	add	r3, r2, r3
	add	r3, r3, r1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L76
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L67
	sub	r2, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L59
.L67:
	sub	r2, fp, #32
	ldr	r3, [fp, #-40]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r2, r3, #15
	sub	r1, fp, #24
	ldr	r3, [fp, #-40]
	add	r3, r1, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	ldr	r1, .L78+24
	lsl	r2, r2, #4
	add	r2, r1, r2
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L77
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L57:
	ldr	r3, [fp, #-40]
	cmp	r3, #7
	ble	.L69
	b	.L59
.L74:
	nop
	b	.L59
.L75:
	nop
	b	.L59
.L76:
	nop
	b	.L59
.L77:
	nop
.L59:
	ldr	r3, [fp, #-40]
	cmp	r3, #7
	ble	.L73
	ldr	r3, .L78+28
	ldmia	r3, {r2-r3}
	adds	r4, r2, #1
	adc	r5, r3, #0
	ldr	r3, .L78+28
	stm	r3, {r4-r5}
	ldrb	r3, [fp, #-49]	@ zero_extendqisi2
	ldr	r1, [fp, #-48]
	mov	r0, r3
	bl	bias
	str	r0, [fp, #-36]
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	ble	.L70
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	str	r3, [fp, #-36]
.L70:
	ldr	r0, [fp, #-36]
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	mov	r1, #1073741824
	bl	pow
	ldr	r3, .L78+32
	ldmia	r3, {r2-r3}
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L78+32
	stm	r1, {r2-r3}
	nop
.L73:
	nop
	ldr	r3, .L78
	ldr	r2, [r3]
	ldr	r3, [fp, #-16]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L72
	bl	__stack_chk_fail
.L72:
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L79:
	.align	2
.L78:
	.word	.LC2
	.word	progress_number
	.word	1072693248
	.word	active_sbox1
	.word	1079574528
	.word	.LC1
	.word	biastable
	.word	trail_number
	.word	overall_bias
	.size	Linear_trails, .-Linear_trails
	.section	.rodata
	.align	2
.LC3:
	.ascii	"How many rounds(2-32),otherwise quit: \000"
	.align	2
.LC4:
	.ascii	"%d\000"
	.align	2
.LC5:
	.ascii	"at+\000"
	.align	2
.LC6:
	.ascii	"Trails.txt\000"
	.align	2
.LC7:
	.ascii	"cannot open file\000"
	.align	2
.LC8:
	.ascii	"too many commandline arguments\000"
	.align	2
.LC9:
	.ascii	"Number of rounds: %d\012\000"
	.align	2
.LC10:
	.ascii	"Input mask:  \000"
	.align	2
.LC11:
	.ascii	"%llX\000"
	.align	2
.LC12:
	.ascii	"Input mask:  %016llX\012\000"
	.align	2
.LC13:
	.ascii	"Output mask: \000"
	.align	2
.LC14:
	.ascii	"Output mask: %016llX\012\000"
	.align	2
.LC15:
	.ascii	"Total %llu linear trails found\012 Total overall bi"
	.ascii	"as: %.10Lf , which is 2^(%lf)\012QED\012\000"
	.align	2
.LC16:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 952
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #968
	str	r0, [fp, #-912]
	str	r1, [fp, #-916]
	ldr	r3, .L105
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-900]
	mov	r2, #8
	mov	r3, #0
	str	r2, [fp, #-884]
	str	r3, [fp, #-880]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-876]
	str	r3, [fp, #-872]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-868]
	str	r3, [fp, #-864]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-860]
	str	r3, [fp, #-856]
	mov	r3, #0
	strb	r3, [fp, #-901]
.L102:
	ldr	r1, .L105+4
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	ldr	r1, .L105+8
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	sub	r3, fp, #576
	mov	r2, #512
	mov	r1, #255
	mov	r0, r3
	bl	memset
	ldr	r0, .L105+12
	bl	printf
	sub	r3, fp, #900
	mov	r1, r3
	ldr	r0, .L105+16
	bl	__isoc99_scanf
	ldr	r3, [fp, #-900]
	cmp	r3, #1
	ble	.L81
	ldr	r3, [fp, #-900]
	cmp	r3, #32
	bgt	.L81
	ldr	r3, [fp, #-912]
	cmp	r3, #1
	bne	.L82
	ldr	r1, .L105+20
	ldr	r0, .L105+24
	bl	fopen
	str	r0, [fp, #-896]
	ldr	r3, [fp, #-896]
	cmp	r3, #0
	bne	.L83
	ldr	r0, .L105+28
	bl	puts
	mov	r0, #0
	bl	exit
.L82:
	ldr	r3, [fp, #-912]
	cmp	r3, #2
	bne	.L84
	ldr	r3, [fp, #-916]
	add	r3, r3, #4
	ldr	r3, [r3]
	ldr	r1, .L105+20
	mov	r0, r3
	bl	fopen
	str	r0, [fp, #-896]
	ldr	r3, [fp, #-896]
	cmp	r3, #0
	bne	.L83
	ldr	r0, .L105+28
	bl	puts
	mov	r0, #0
	bl	exit
.L84:
	ldr	r0, .L105+32
	bl	puts
	mov	r0, #0
	bl	exit
.L83:
	ldr	r3, [fp, #-900]
	mov	r2, r3
	ldr	r1, .L105+36
	ldr	r0, [fp, #-896]
	bl	fprintf
	ldr	r0, [fp, #-896]
	bl	fflush
	ldr	r0, .L105+40
	bl	printf
	sub	r3, fp, #884
	mov	r1, r3
	ldr	r0, .L105+44
	bl	__isoc99_scanf
	ldr	r1, .L105+48
	mov	r2, #0
	ldr	r3, .L105+52
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-892]
	b	.L85
.L90:
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	ldr	r1, [fp, #-892]
	lsl	r1, r1, #2
	rsb	ip, r1, #32
	sub	r0, r1, #32
	lsr	r8, r2, r1
	orr	r8, r8, r3, lsl ip
	orr	r8, r8, r3, lsr r0
	lsr	r9, r3, r1
	and	r3, r8, #255
	and	r3, r3, #15
	strb	r3, [fp, #-901]
	ldrb	r3, [fp, #-901]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L86
	ldr	r1, .L105+56
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	mov	r3, #0
	str	r3, [fp, #-888]
	b	.L87
.L89:
	ldrb	r3, [fp, #-901]	@ zero_extendqisi2
	ldr	r2, .L105+60
	lsl	r3, r3, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-888]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L88
	ldr	r3, .L105+56
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L105+52
	bl	__aeabi_dadd
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, .L105+56
	stm	r3, {r0-r1}
.L88:
	ldr	r3, [fp, #-888]
	add	r3, r3, #1
	str	r3, [fp, #-888]
.L87:
	ldr	r3, [fp, #-888]
	cmp	r3, #15
	ble	.L89
	ldr	r3, .L105+56
	ldmia	r3, {r0-r1}
	ldr	r3, .L105+48
	ldmia	r3, {r2-r3}
	bl	__aeabi_dmul
	mov	r2, r0
	mov	r3, r1
	mov	r0, r2
	mov	r1, r3
	ldr	r3, .L105+48
	stm	r3, {r0-r1}
.L86:
	ldr	r3, [fp, #-892]
	add	r3, r3, #1
	str	r3, [fp, #-892]
.L85:
	ldr	r3, [fp, #-892]
	cmp	r3, #15
	ble	.L90
	ldr	r3, .L105+48
	ldmia	r3, {r2-r3}
	ldr	r1, .L105+56
	stm	r1, {r2-r3}
	ldr	r1, .L105+48
	mov	r2, #0
	mov	r3, #0
	stm	r1, {r2-r3}
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	ldr	r1, .L105+64
	ldr	r0, [fp, #-896]
	bl	fprintf
	ldr	r0, [fp, #-896]
	bl	fflush
	ldr	r0, .L105+68
	bl	printf
	sub	r3, fp, #876
	mov	r1, r3
	ldr	r0, .L105+44
	bl	__isoc99_scanf
	sub	r3, fp, #876
	ldmia	r3, {r2-r3}
	ldr	r1, .L105+72
	ldr	r0, [fp, #-896]
	bl	fprintf
	ldr	r0, [fp, #-896]
	bl	fflush
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-844]
	str	r3, [fp, #-840]
	ldr	r3, [fp, #-900]
	sub	r1, fp, #876
	ldmia	r1, {r0-r1}
	lsl	r3, r3, #3
	sub	r2, fp, #28
	add	r3, r2, r3
	sub	r3, r3, #816
	stm	r3, {r0-r1}
	sub	r3, fp, #876
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	reverse_permutation
	str	r0, [fp, #-860]
	str	r1, [fp, #-856]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r3, #24
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-56]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r3, #16
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-55]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r3, #8
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-54]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	mov	r0, r3
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-53]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #24
	orr	r0, r0, r3, lsl #8
	lsr	r1, r3, #24
	and	r3, r0, #255
	strb	r3, [fp, #-52]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #16
	orr	r0, r0, r3, lsl #16
	lsr	r1, r3, #16
	and	r3, r0, #255
	strb	r3, [fp, #-51]
	sub	r3, fp, #860
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #8
	orr	r0, r0, r3, lsl #24
	lsr	r1, r3, #8
	and	r3, r0, #255
	strb	r3, [fp, #-50]
	ldrb	r3, [fp, #-860]	@ zero_extendqisi2
	strb	r3, [fp, #-49]
	mov	r3, #0
	str	r3, [fp, #-892]
	b	.L91
.L95:
	sub	r2, fp, #56
	ldr	r3, [fp, #-892]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L92
	sub	r2, fp, #64
	ldr	r3, [fp, #-892]
	add	r2, r2, r3
	mvn	r3, #15
	strb	r3, [r2]
	b	.L93
.L92:
	sub	r2, fp, #64
	ldr	r3, [fp, #-892]
	add	r2, r2, r3
	mov	r3, #0
	strb	r3, [r2]
.L93:
	sub	r2, fp, #56
	ldr	r3, [fp, #-892]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L94
	sub	r2, fp, #64
	ldr	r3, [fp, #-892]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	orr	r3, r3, #15
	and	r1, r3, #255
	sub	r2, fp, #64
	ldr	r3, [fp, #-892]
	add	r2, r2, r3
	mov	r3, r1
	strb	r3, [r2]
.L94:
	ldr	r3, [fp, #-892]
	add	r3, r3, #1
	str	r3, [fp, #-892]
.L91:
	ldr	r3, [fp, #-892]
	cmp	r3, #7
	ble	.L95
	ldrb	r3, [fp, #-64]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r4, #0
	mov	r5, #0
	lsl	r5, r2, #24
	mov	r4, #0
	ldrb	r3, [fp, #-63]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #16
	mov	r0, #0
	orr	r3, r4, r0
	str	r3, [fp, #-924]
	orr	r3, r5, r1
	str	r3, [fp, #-920]
	ldrb	r3, [fp, #-62]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r2, #8
	mov	r0, #0
	sub	r4, fp, #924
	ldmia	r4, {r3-r4}
	mov	r2, r3
	orr	r2, r2, r0
	str	r2, [fp, #-932]
	mov	r3, r4
	orr	r3, r3, r1
	str	r3, [fp, #-928]
	ldrb	r3, [fp, #-61]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	sub	r4, fp, #932
	ldmia	r4, {r3-r4}
	mov	r2, r3
	orr	r2, r2, r0
	str	r2, [fp, #-940]
	mov	r3, r4
	orr	r3, r3, r1
	str	r3, [fp, #-936]
	ldrb	r3, [fp, #-60]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	lsr	r1, r2, #8
	str	r1, [fp, #-944]
	lsl	r3, r2, #24
	str	r3, [fp, #-948]
	sub	r2, fp, #940
	ldmia	r2, {r1-r2}
	mov	r0, r1
	sub	r4, fp, #948
	ldmia	r4, {r3-r4}
	mov	ip, r3
	orr	r0, r0, ip
	str	r0, [fp, #-956]
	mov	r3, r4
	orr	r3, r2, r3
	str	r3, [fp, #-952]
	ldrb	r3, [fp, #-59]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #16
	orr	r1, r1, r2, lsr #16
	lsl	r0, r2, #16
	sub	r4, fp, #956
	ldmia	r4, {r3-r4}
	mov	r2, r3
	orr	r2, r2, r0
	str	r2, [fp, #-964]
	mov	r3, r4
	orr	r3, r3, r1
	str	r3, [fp, #-960]
	ldrb	r3, [fp, #-58]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	lsl	r1, r3, #8
	orr	r1, r1, r2, lsr #24
	lsl	r0, r2, #8
	sub	r4, fp, #964
	ldmia	r4, {r3-r4}
	mov	r2, r3
	orr	r2, r2, r0
	str	r2, [fp, #-972]
	mov	r3, r4
	orr	r3, r3, r1
	str	r3, [fp, #-968]
	ldrb	r3, [fp, #-57]	@ zero_extendqisi2
	and	r2, r3, #255
	mov	r3, #0
	sub	r1, fp, #972
	ldmia	r1, {r0-r1}
	mov	ip, r0
	orr	ip, ip, r2
	str	ip, [fp, #-980]
	orr	r3, r1, r3
	str	r3, [fp, #-976]
	sub	r1, fp, #980
	ldmia	r1, {r0-r1}
	bl	reverse_permutation
	str	r0, [fp, #-868]
	str	r1, [fp, #-864]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r3, #24
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-64]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r3, #16
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-63]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r3, #8
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-62]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	mov	r0, r3
	mov	r1, #0
	and	r3, r0, #255
	strb	r3, [fp, #-61]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #24
	orr	r0, r0, r3, lsl #8
	lsr	r1, r3, #24
	and	r3, r0, #255
	strb	r3, [fp, #-60]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #16
	orr	r0, r0, r3, lsl #16
	lsr	r1, r3, #16
	and	r3, r0, #255
	strb	r3, [fp, #-59]
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r0, #0
	mov	r1, #0
	lsr	r0, r2, #8
	orr	r0, r0, r3, lsl #24
	lsr	r1, r3, #8
	and	r3, r0, #255
	strb	r3, [fp, #-58]
	ldrb	r3, [fp, #-868]	@ zero_extendqisi2
	strb	r3, [fp, #-57]
	mov	r3, #0
	str	r3, [fp, #-892]
	b	.L96
.L101:
	sub	r2, fp, #64
	ldr	r3, [fp, #-892]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L97
	ldr	r3, [fp, #-892]
	lsl	r3, r3, #1
	sub	r2, fp, #28
	add	r2, r2, r3
	mov	r3, #1
	strb	r3, [r2, #-20]
	b	.L98
.L97:
	ldr	r3, [fp, #-892]
	lsl	r3, r3, #1
	sub	r2, fp, #28
	add	r2, r2, r3
	mov	r3, #0
	strb	r3, [r2, #-20]
.L98:
	sub	r2, fp, #64
	ldr	r3, [fp, #-892]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	and	r3, r3, #15
	cmp	r3, #0
	beq	.L99
	ldr	r3, [fp, #-892]
	lsl	r3, r3, #1
	add	r3, r3, #1
	sub	r2, fp, #28
	add	r2, r2, r3
	mov	r3, #1
	strb	r3, [r2, #-20]
	b	.L100
.L99:
	ldr	r3, [fp, #-892]
	lsl	r3, r3, #1
	add	r3, r3, #1
	sub	r2, fp, #28
	add	r2, r2, r3
	mov	r3, #0
	strb	r3, [r2, #-20]
.L100:
	ldr	r3, [fp, #-892]
	add	r3, r3, #1
	str	r3, [fp, #-892]
.L96:
	ldr	r3, [fp, #-892]
	cmp	r3, #7
	ble	.L101
	ldr	r3, [fp, #-900]
	and	r1, r3, #255
	sub	r2, fp, #48
	sub	r0, fp, #844
	ldr	r3, [fp, #-896]
	str	r3, [sp, #4]
	sub	r3, fp, #576
	str	r3, [sp]
	mov	r3, r2
	mov	r2, #1
	bl	Linear_trails
	ldr	r3, .L105+8
	ldmia	r3, {r0-r1}
	mov	r2, #0
	ldr	r3, .L105+76
	bl	pow
	mov	r2, r0
	mov	r3, r1
	ldr	r1, .L105+8
	stm	r1, {r2-r3}
	ldr	r3, .L105+8
	ldmia	r3, {r2-r3}
	mov	r0, r2
	mov	r1, r3
	bl	log
	str	r0, [fp, #-852]
	str	r1, [fp, #-848]
	ldr	r3, .L105+4
	ldmia	r3, {r6-r7}
	ldr	r3, .L105+8
	ldmia	r3, {r4-r5}
	ldr	r2, .L105+80
	ldr	r3, .L105+84
	sub	r1, fp, #852
	ldmia	r1, {r0-r1}
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	str	r2, [sp, #8]
	str	r3, [sp, #12]
	stm	sp, {r4-r5}
	mov	r2, r6
	mov	r3, r7
	ldr	r1, .L105+88
	ldr	r0, [fp, #-896]
	bl	fprintf
	ldr	r0, [fp, #-896]
	bl	fflush
	ldr	r0, [fp, #-896]
	bl	fclose
	b	.L102
.L81:
	mov	r3, #0
	ldr	r2, .L105
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L104
	bl	__stack_chk_fail
.L104:
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L106:
	.align	2
.L105:
	.word	.LC16
	.word	trail_number
	.word	overall_bias
	.word	.LC3
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	.LC7
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	progress_number
	.word	1072693248
	.word	active_sbox1
	.word	biastable
	.word	.LC12
	.word	.LC13
	.word	.LC14
	.word	1071644672
	.word	-17155601
	.word	1072049730
	.word	.LC15
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
