	.file	"443854.c"
	.intel_syntax noprefix
	.text
	.globl	nfails
	.bss
	.align 4
	.type	nfails, @object
	.size	nfails, 4
nfails:
	.zero	4
	.section	.rodata
.LC0:
	.string	"line %i: assertion failed\n"
	.text
	.globl	runtime_assert
	.type	runtime_assert, @function
runtime_assert:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	DWORD PTR -8[rbp], esi
	cmp	DWORD PTR -4[rbp], 0
	jne	.L3
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC0[rip]
	mov	eax, 0
	call	printf@PLT
	mov	eax, DWORD PTR nfails[rip]
	add	eax, 1
	mov	DWORD PTR nfails[rip], eax
.L3:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	runtime_assert, .-runtime_assert
	.globl	main
	.type	main, @function
main:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 4096
	or	QWORD PTR [rsp], 0
	sub	rsp, 208
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -4176[rbp], 0
	mov	DWORD PTR -4172[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4176[rbp]
	mov	eax, DWORD PTR -4172[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L5
	mov	ecx, 1
.L5:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4168[rbp], eax
	mov	eax, DWORD PTR -4168[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 107
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4168[rbp]
	test	eax, eax
	jne	.L6
	mov	edx, DWORD PTR -4176[rbp]
	mov	eax, DWORD PTR -4172[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 107
	mov	edi, eax
	call	runtime_assert
.L6:
	mov	DWORD PTR -4164[rbp], 0
	mov	DWORD PTR -4160[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4164[rbp]
	mov	eax, DWORD PTR -4160[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L7
	mov	ecx, 1
.L7:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4156[rbp], eax
	mov	eax, DWORD PTR -4156[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 108
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4156[rbp]
	test	eax, eax
	jne	.L8
	mov	edx, DWORD PTR -4164[rbp]
	mov	eax, DWORD PTR -4160[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 108
	mov	edi, eax
	call	runtime_assert
.L8:
	mov	DWORD PTR -4152[rbp], 1
	mov	DWORD PTR -4148[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4152[rbp]
	mov	eax, DWORD PTR -4148[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L9
	mov	ecx, 1
.L9:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4144[rbp], eax
	mov	eax, DWORD PTR -4144[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 109
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4144[rbp]
	test	eax, eax
	jne	.L10
	mov	edx, DWORD PTR -4152[rbp]
	mov	eax, DWORD PTR -4148[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 109
	mov	edi, eax
	call	runtime_assert
.L10:
	mov	DWORD PTR -4140[rbp], 127
	mov	DWORD PTR -4136[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4140[rbp]
	mov	eax, DWORD PTR -4136[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L11
	mov	ecx, 1
.L11:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4132[rbp], eax
	mov	eax, DWORD PTR -4132[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 110
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4132[rbp]
	test	eax, eax
	jne	.L12
	mov	edx, DWORD PTR -4140[rbp]
	mov	eax, DWORD PTR -4136[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 110
	mov	edi, eax
	call	runtime_assert
.L12:
	mov	DWORD PTR -4128[rbp], 0
	mov	DWORD PTR -4124[rbp], -128
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4128[rbp]
	mov	eax, DWORD PTR -4124[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L13
	mov	ecx, 1
.L13:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4120[rbp], eax
	mov	eax, DWORD PTR -4120[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 111
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4120[rbp]
	test	eax, eax
	jne	.L14
	mov	edx, DWORD PTR -4128[rbp]
	mov	eax, DWORD PTR -4124[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 111
	mov	edi, eax
	call	runtime_assert
.L14:
	mov	DWORD PTR -4116[rbp], -1
	mov	DWORD PTR -4112[rbp], -128
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4116[rbp]
	mov	eax, DWORD PTR -4112[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L15
	mov	ecx, 1
.L15:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4108[rbp], eax
	mov	eax, DWORD PTR -4108[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 112
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4108[rbp]
	test	eax, eax
	jne	.L16
	mov	edx, DWORD PTR -4116[rbp]
	mov	eax, DWORD PTR -4112[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 112
	mov	edi, eax
	call	runtime_assert
.L16:
	mov	DWORD PTR -4104[rbp], 256
	mov	DWORD PTR -4100[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4104[rbp]
	mov	eax, DWORD PTR -4100[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L17
	mov	ecx, 1
.L17:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4096[rbp], eax
	mov	eax, DWORD PTR -4096[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 115
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4096[rbp]
	test	eax, eax
	jne	.L18
	mov	edx, DWORD PTR -4104[rbp]
	mov	eax, DWORD PTR -4100[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 115
	mov	edi, eax
	call	runtime_assert
.L18:
	mov	DWORD PTR -4092[rbp], 256
	mov	DWORD PTR -4088[rbp], 1
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4092[rbp]
	mov	eax, DWORD PTR -4088[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L19
	mov	ecx, 1
.L19:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4084[rbp], eax
	mov	eax, DWORD PTR -4084[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 116
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4084[rbp]
	test	eax, eax
	jne	.L20
	mov	edx, DWORD PTR -4092[rbp]
	mov	eax, DWORD PTR -4088[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 116
	mov	edi, eax
	call	runtime_assert
.L20:
	mov	DWORD PTR -4080[rbp], 1
	mov	DWORD PTR -4076[rbp], 256
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4080[rbp]
	mov	eax, DWORD PTR -4076[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	add	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L21
	mov	ecx, 1
.L21:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4072[rbp], eax
	mov	eax, DWORD PTR -4072[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 117
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4072[rbp]
	test	eax, eax
	jne	.L22
	mov	edx, DWORD PTR -4080[rbp]
	mov	eax, DWORD PTR -4076[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 117
	mov	edi, eax
	call	runtime_assert
.L22:
	mov	DWORD PTR -4068[rbp], 0
	mov	DWORD PTR -4064[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4068[rbp]
	mov	eax, DWORD PTR -4064[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L23
	mov	ecx, 1
.L23:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4060[rbp], eax
	mov	eax, DWORD PTR -4060[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 119
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4060[rbp]
	test	eax, eax
	jne	.L24
	mov	edx, DWORD PTR -4068[rbp]
	mov	eax, DWORD PTR -4064[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 119
	mov	edi, eax
	call	runtime_assert
.L24:
	mov	DWORD PTR -4056[rbp], 256
	mov	DWORD PTR -4052[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4056[rbp]
	mov	eax, DWORD PTR -4052[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	add	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L25
	mov	ecx, 1
.L25:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4048[rbp], eax
	mov	eax, DWORD PTR -4048[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 122
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4048[rbp]
	test	eax, eax
	jne	.L26
	mov	edx, DWORD PTR -4056[rbp]
	mov	eax, DWORD PTR -4052[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 122
	mov	edi, eax
	call	runtime_assert
.L26:
	mov	DWORD PTR -4044[rbp], 256
	mov	DWORD PTR -4040[rbp], 1
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4044[rbp]
	mov	eax, DWORD PTR -4040[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	add	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L27
	mov	ecx, 1
.L27:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4036[rbp], eax
	mov	eax, DWORD PTR -4036[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 123
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4036[rbp]
	test	eax, eax
	jne	.L28
	mov	edx, DWORD PTR -4044[rbp]
	mov	eax, DWORD PTR -4040[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 123
	mov	edi, eax
	call	runtime_assert
.L28:
	mov	DWORD PTR -4032[rbp], 1
	mov	DWORD PTR -4028[rbp], 256
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -4032[rbp]
	mov	eax, DWORD PTR -4028[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	add	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L29
	mov	ecx, 1
.L29:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4024[rbp], eax
	mov	eax, DWORD PTR -4024[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 124
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4024[rbp]
	test	eax, eax
	jne	.L30
	mov	edx, DWORD PTR -4032[rbp]
	mov	eax, DWORD PTR -4028[rbp]
	add	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 124
	mov	edi, eax
	call	runtime_assert
.L30:
	mov	DWORD PTR -4020[rbp], 0
	mov	DWORD PTR -4016[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -4020[rbp]
	mov	eax, DWORD PTR -4016[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L31
	mov	ecx, 1
.L31:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4012[rbp], eax
	mov	eax, DWORD PTR -4012[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 126
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4012[rbp]
	test	eax, eax
	jne	.L32
	mov	edx, DWORD PTR -4020[rbp]
	mov	eax, DWORD PTR -4016[rbp]
	add	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 126
	mov	edi, eax
	call	runtime_assert
.L32:
	mov	DWORD PTR -4008[rbp], 0
	mov	DWORD PTR -4004[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -4008[rbp]
	mov	eax, DWORD PTR -4004[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L33
	mov	ecx, 1
.L33:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -4000[rbp], eax
	mov	eax, DWORD PTR -4000[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 127
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -4000[rbp]
	test	eax, eax
	jne	.L34
	mov	edx, DWORD PTR -4008[rbp]
	mov	eax, DWORD PTR -4004[rbp]
	add	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 127
	mov	edi, eax
	call	runtime_assert
.L34:
	mov	DWORD PTR -3996[rbp], 1
	mov	DWORD PTR -3992[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3996[rbp]
	mov	eax, DWORD PTR -3992[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L35
	mov	ecx, 1
.L35:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3988[rbp], eax
	mov	eax, DWORD PTR -3988[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 128
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3988[rbp]
	test	eax, eax
	jne	.L36
	mov	edx, DWORD PTR -3996[rbp]
	mov	eax, DWORD PTR -3992[rbp]
	add	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 128
	mov	edi, eax
	call	runtime_assert
.L36:
	mov	DWORD PTR -3984[rbp], 32767
	mov	DWORD PTR -3980[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3984[rbp]
	mov	eax, DWORD PTR -3980[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L37
	mov	ecx, 1
.L37:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3976[rbp], eax
	mov	eax, DWORD PTR -3976[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 129
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3976[rbp]
	test	eax, eax
	jne	.L38
	mov	edx, DWORD PTR -3984[rbp]
	mov	eax, DWORD PTR -3980[rbp]
	add	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 129
	mov	edi, eax
	call	runtime_assert
.L38:
	mov	DWORD PTR -3972[rbp], 0
	mov	DWORD PTR -3968[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3972[rbp]
	mov	eax, DWORD PTR -3968[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L39
	mov	ecx, 1
.L39:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3964[rbp], eax
	mov	eax, DWORD PTR -3964[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 130
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3964[rbp]
	test	eax, eax
	jne	.L40
	mov	edx, DWORD PTR -3972[rbp]
	mov	eax, DWORD PTR -3968[rbp]
	add	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 130
	mov	edi, eax
	call	runtime_assert
.L40:
	mov	DWORD PTR -3960[rbp], -1
	mov	DWORD PTR -3956[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3960[rbp]
	mov	eax, DWORD PTR -3956[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L41
	mov	ecx, 1
.L41:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3952[rbp], eax
	mov	eax, DWORD PTR -3952[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 131
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3952[rbp]
	test	eax, eax
	jne	.L42
	mov	edx, DWORD PTR -3960[rbp]
	mov	eax, DWORD PTR -3956[rbp]
	add	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 131
	mov	edi, eax
	call	runtime_assert
.L42:
	mov	DWORD PTR -3948[rbp], -32768
	mov	DWORD PTR -3944[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3948[rbp]
	mov	eax, DWORD PTR -3944[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L43
	mov	ecx, 1
.L43:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3940[rbp], eax
	mov	eax, DWORD PTR -3940[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 132
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3940[rbp]
	test	eax, eax
	jne	.L44
	mov	edx, DWORD PTR -3948[rbp]
	mov	eax, DWORD PTR -3944[rbp]
	add	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 132
	mov	edi, eax
	call	runtime_assert
.L44:
	mov	DWORD PTR -3936[rbp], 0
	mov	DWORD PTR -3932[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3936[rbp]
	mov	eax, DWORD PTR -3932[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L45
	mov	ecx, 1
.L45:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3928[rbp], eax
	mov	eax, DWORD PTR -3928[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 134
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3928[rbp]
	test	eax, eax
	jne	.L47
	mov	edx, DWORD PTR -3936[rbp]
	mov	eax, DWORD PTR -3932[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 134
	mov	edi, eax
	call	runtime_assert
.L47:
	mov	DWORD PTR -3924[rbp], 0
	mov	DWORD PTR -3920[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3924[rbp]
	mov	eax, DWORD PTR -3920[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L48
	mov	ecx, 1
.L48:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3916[rbp], eax
	mov	eax, DWORD PTR -3916[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 135
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3916[rbp]
	test	eax, eax
	jne	.L50
	mov	edx, DWORD PTR -3924[rbp]
	mov	eax, DWORD PTR -3920[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 135
	mov	edi, eax
	call	runtime_assert
.L50:
	mov	DWORD PTR -3912[rbp], 1
	mov	DWORD PTR -3908[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3912[rbp]
	mov	eax, DWORD PTR -3908[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L51
	mov	ecx, 1
.L51:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3904[rbp], eax
	mov	eax, DWORD PTR -3904[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 136
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3904[rbp]
	test	eax, eax
	jne	.L53
	mov	edx, DWORD PTR -3912[rbp]
	mov	eax, DWORD PTR -3908[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 136
	mov	edi, eax
	call	runtime_assert
.L53:
	mov	DWORD PTR -3900[rbp], 2147483647
	mov	DWORD PTR -3896[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3900[rbp]
	mov	eax, DWORD PTR -3896[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L54
	mov	ecx, 1
.L54:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3892[rbp], eax
	mov	eax, DWORD PTR -3892[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 137
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3892[rbp]
	test	eax, eax
	jne	.L56
	mov	edx, DWORD PTR -3900[rbp]
	mov	eax, DWORD PTR -3896[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 137
	mov	edi, eax
	call	runtime_assert
.L56:
	mov	DWORD PTR -3888[rbp], 0
	mov	DWORD PTR -3884[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3888[rbp]
	mov	eax, DWORD PTR -3884[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L57
	mov	ecx, 1
.L57:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3880[rbp], eax
	mov	eax, DWORD PTR -3880[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 138
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3880[rbp]
	test	eax, eax
	jne	.L59
	mov	edx, DWORD PTR -3888[rbp]
	mov	eax, DWORD PTR -3884[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 138
	mov	edi, eax
	call	runtime_assert
.L59:
	mov	DWORD PTR -3876[rbp], -1
	mov	DWORD PTR -3872[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3876[rbp]
	mov	eax, DWORD PTR -3872[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L60
	mov	ecx, 1
.L60:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3868[rbp], eax
	mov	eax, DWORD PTR -3868[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 139
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3868[rbp]
	test	eax, eax
	jne	.L62
	mov	edx, DWORD PTR -3876[rbp]
	mov	eax, DWORD PTR -3872[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 139
	mov	edi, eax
	call	runtime_assert
.L62:
	mov	DWORD PTR -3864[rbp], -2147483648
	mov	DWORD PTR -3860[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3864[rbp]
	mov	eax, DWORD PTR -3860[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L63
	mov	ecx, 1
.L63:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3856[rbp], eax
	mov	eax, DWORD PTR -3856[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 140
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3856[rbp]
	test	eax, eax
	jne	.L65
	mov	edx, DWORD PTR -3864[rbp]
	mov	eax, DWORD PTR -3860[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 140
	mov	edi, eax
	call	runtime_assert
.L65:
	mov	DWORD PTR -3852[rbp], 0
	mov	DWORD PTR -3848[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3852[rbp]
	mov	eax, DWORD PTR -3848[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3844[rbp], eax
	mov	eax, DWORD PTR -3844[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 142
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3844[rbp]
	test	eax, eax
	jne	.L66
	mov	edx, DWORD PTR -3852[rbp]
	mov	eax, DWORD PTR -3848[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 142
	mov	edi, eax
	call	runtime_assert
.L66:
	mov	QWORD PTR -1712[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1704[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1712[rbp]
	mov	rax, QWORD PTR -1704[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L67
	mov	ecx, 1
.L67:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3840[rbp], eax
	mov	eax, DWORD PTR -3840[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 143
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3840[rbp]
	test	eax, eax
	jne	.L69
	mov	rdx, QWORD PTR -1712[rbp]
	mov	rax, QWORD PTR -1704[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 143
	mov	edi, eax
	call	runtime_assert
.L69:
	mov	QWORD PTR -1696[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1688[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1696[rbp]
	mov	rax, QWORD PTR -1688[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L70
	mov	ecx, 1
.L70:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3836[rbp], eax
	mov	eax, DWORD PTR -3836[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 144
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3836[rbp]
	test	eax, eax
	jne	.L72
	mov	rdx, QWORD PTR -1696[rbp]
	mov	rax, QWORD PTR -1688[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 144
	mov	edi, eax
	call	runtime_assert
.L72:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1680[rbp], rax
	mov	QWORD PTR -1672[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1680[rbp]
	mov	rax, QWORD PTR -1672[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L73
	mov	ecx, 1
.L73:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3832[rbp], eax
	mov	eax, DWORD PTR -3832[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 145
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3832[rbp]
	test	eax, eax
	jne	.L75
	mov	rdx, QWORD PTR -1680[rbp]
	mov	rax, QWORD PTR -1672[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 145
	mov	edi, eax
	call	runtime_assert
.L75:
	mov	QWORD PTR -1664[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1656[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1664[rbp]
	mov	rax, QWORD PTR -1656[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L76
	mov	ecx, 1
.L76:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3828[rbp], eax
	mov	eax, DWORD PTR -3828[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 146
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3828[rbp]
	test	eax, eax
	jne	.L78
	mov	rdx, QWORD PTR -1664[rbp]
	mov	rax, QWORD PTR -1656[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 146
	mov	edi, eax
	call	runtime_assert
.L78:
	mov	QWORD PTR -1648[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1640[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1648[rbp]
	mov	rax, QWORD PTR -1640[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L79
	mov	ecx, 1
.L79:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3824[rbp], eax
	mov	eax, DWORD PTR -3824[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 147
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3824[rbp]
	test	eax, eax
	jne	.L81
	mov	rdx, QWORD PTR -1648[rbp]
	mov	rax, QWORD PTR -1640[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 147
	mov	edi, eax
	call	runtime_assert
.L81:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1632[rbp], rax
	mov	QWORD PTR -1624[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1632[rbp]
	mov	rax, QWORD PTR -1624[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L82
	mov	ecx, 1
.L82:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3820[rbp], eax
	mov	eax, DWORD PTR -3820[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 148
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3820[rbp]
	test	eax, eax
	jne	.L84
	mov	rdx, QWORD PTR -1632[rbp]
	mov	rax, QWORD PTR -1624[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 148
	mov	edi, eax
	call	runtime_assert
.L84:
	mov	DWORD PTR -3816[rbp], 0
	mov	DWORD PTR -3812[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3816[rbp]
	mov	eax, DWORD PTR -3812[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	add	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3808[rbp], eax
	mov	eax, DWORD PTR -3808[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 150
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3808[rbp]
	test	eax, eax
	jne	.L85
	mov	edx, DWORD PTR -3816[rbp]
	mov	eax, DWORD PTR -3812[rbp]
	add	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 150
	mov	edi, eax
	call	runtime_assert
.L85:
	mov	QWORD PTR -1616[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1608[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1616[rbp]
	mov	rax, QWORD PTR -1608[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L86
	mov	ecx, 1
.L86:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3804[rbp], eax
	mov	eax, DWORD PTR -3804[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 151
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3804[rbp]
	test	eax, eax
	jne	.L88
	mov	rdx, QWORD PTR -1616[rbp]
	mov	rax, QWORD PTR -1608[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 151
	mov	edi, eax
	call	runtime_assert
.L88:
	mov	QWORD PTR -1600[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1592[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1600[rbp]
	mov	rax, QWORD PTR -1592[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L89
	mov	ecx, 1
.L89:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3800[rbp], eax
	mov	eax, DWORD PTR -3800[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 152
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3800[rbp]
	test	eax, eax
	jne	.L91
	mov	rdx, QWORD PTR -1600[rbp]
	mov	rax, QWORD PTR -1592[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 152
	mov	edi, eax
	call	runtime_assert
.L91:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1584[rbp], rax
	mov	QWORD PTR -1576[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1584[rbp]
	mov	rax, QWORD PTR -1576[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L92
	mov	ecx, 1
.L92:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3796[rbp], eax
	mov	eax, DWORD PTR -3796[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 153
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3796[rbp]
	test	eax, eax
	jne	.L94
	mov	rdx, QWORD PTR -1584[rbp]
	mov	rax, QWORD PTR -1576[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 153
	mov	edi, eax
	call	runtime_assert
.L94:
	mov	QWORD PTR -1568[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1560[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1568[rbp]
	mov	rax, QWORD PTR -1560[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L95
	mov	ecx, 1
.L95:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3792[rbp], eax
	mov	eax, DWORD PTR -3792[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 154
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3792[rbp]
	test	eax, eax
	jne	.L97
	mov	rdx, QWORD PTR -1568[rbp]
	mov	rax, QWORD PTR -1560[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 154
	mov	edi, eax
	call	runtime_assert
.L97:
	mov	QWORD PTR -1552[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1544[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1552[rbp]
	mov	rax, QWORD PTR -1544[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L98
	mov	ecx, 1
.L98:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3788[rbp], eax
	mov	eax, DWORD PTR -3788[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 155
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3788[rbp]
	test	eax, eax
	jne	.L100
	mov	rdx, QWORD PTR -1552[rbp]
	mov	rax, QWORD PTR -1544[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 155
	mov	edi, eax
	call	runtime_assert
.L100:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1536[rbp], rax
	mov	QWORD PTR -1528[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1536[rbp]
	mov	rax, QWORD PTR -1528[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L101
	mov	ecx, 1
.L101:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3784[rbp], eax
	mov	eax, DWORD PTR -3784[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 156
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3784[rbp]
	test	eax, eax
	jne	.L103
	mov	rdx, QWORD PTR -1536[rbp]
	mov	rax, QWORD PTR -1528[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 156
	mov	edi, eax
	call	runtime_assert
.L103:
	mov	DWORD PTR -3780[rbp], 0
	mov	DWORD PTR -3776[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3780[rbp]
	mov	edx, DWORD PTR -3776[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L104
	mov	ecx, 1
.L104:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3772[rbp], eax
	mov	eax, DWORD PTR -3772[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 159
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3772[rbp]
	test	eax, eax
	jne	.L105
	mov	eax, DWORD PTR -3780[rbp]
	mov	ecx, DWORD PTR -3776[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 159
	mov	edi, eax
	call	runtime_assert
.L105:
	mov	DWORD PTR -3768[rbp], 0
	mov	DWORD PTR -3764[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3768[rbp]
	mov	eax, DWORD PTR -3764[rbp]
	mov	edx, edx
	mov	esi, eax
	mov	ecx, 0
	mov	rax, rdx
	sub	rax, rsi
	jnb	.L106
	mov	ecx, 1
.L106:
	movzx	edx, al
	cmp	rax, rdx
	je	.L108
	mov	ecx, 1
.L108:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3760[rbp], eax
	mov	eax, DWORD PTR -3760[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 160
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3760[rbp]
	test	eax, eax
	jne	.L109
	mov	eax, DWORD PTR -3768[rbp]
	mov	ecx, DWORD PTR -3764[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 160
	mov	edi, eax
	call	runtime_assert
.L109:
	mov	DWORD PTR -3756[rbp], 1
	mov	DWORD PTR -3752[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3756[rbp]
	mov	eax, DWORD PTR -3752[rbp]
	mov	edx, edx
	mov	esi, eax
	mov	ecx, 0
	mov	rax, rdx
	sub	rax, rsi
	jnb	.L110
	mov	ecx, 1
.L110:
	movzx	edx, al
	cmp	rax, rdx
	je	.L112
	mov	ecx, 1
.L112:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3748[rbp], eax
	mov	eax, DWORD PTR -3748[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 161
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3748[rbp]
	test	eax, eax
	jne	.L113
	mov	eax, DWORD PTR -3756[rbp]
	mov	ecx, DWORD PTR -3752[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 161
	mov	edi, eax
	call	runtime_assert
.L113:
	mov	DWORD PTR -3744[rbp], 255
	mov	DWORD PTR -3740[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3744[rbp]
	mov	eax, DWORD PTR -3740[rbp]
	mov	edx, edx
	mov	esi, eax
	mov	ecx, 0
	mov	rax, rdx
	sub	rax, rsi
	jnb	.L114
	mov	ecx, 1
.L114:
	movzx	edx, al
	cmp	rax, rdx
	je	.L116
	mov	ecx, 1
.L116:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3736[rbp], eax
	mov	eax, DWORD PTR -3736[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 163
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3736[rbp]
	test	eax, eax
	jne	.L117
	mov	eax, DWORD PTR -3744[rbp]
	mov	ecx, DWORD PTR -3740[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 163
	mov	edi, eax
	call	runtime_assert
.L117:
	mov	DWORD PTR -3732[rbp], 0
	mov	DWORD PTR -3728[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3732[rbp]
	mov	edx, DWORD PTR -3728[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L118
	mov	ecx, 1
.L118:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3724[rbp], eax
	mov	eax, DWORD PTR -3724[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 164
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3724[rbp]
	test	eax, eax
	jne	.L119
	mov	eax, DWORD PTR -3732[rbp]
	mov	ecx, DWORD PTR -3728[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 164
	mov	edi, eax
	call	runtime_assert
.L119:
	mov	DWORD PTR -3720[rbp], 0
	mov	DWORD PTR -3716[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3720[rbp]
	mov	eax, DWORD PTR -3716[rbp]
	mov	ecx, edx
	mov	esi, eax
	mov	edx, 0
	mov	rax, rcx
	sub	rax, rsi
	jnb	.L120
	mov	edx, 1
.L120:
	movzx	ecx, ax
	cmp	rax, rcx
	je	.L122
	mov	edx, 1
.L122:
	mov	WORD PTR -16[rbp], ax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3712[rbp], eax
	mov	eax, DWORD PTR -3712[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 165
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3712[rbp]
	test	eax, eax
	jne	.L123
	mov	eax, DWORD PTR -3720[rbp]
	mov	ecx, DWORD PTR -3716[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 165
	mov	edi, eax
	call	runtime_assert
.L123:
	mov	DWORD PTR -3708[rbp], 1
	mov	DWORD PTR -3704[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3708[rbp]
	mov	eax, DWORD PTR -3704[rbp]
	mov	ecx, edx
	mov	esi, eax
	mov	edx, 0
	mov	rax, rcx
	sub	rax, rsi
	jnb	.L124
	mov	edx, 1
.L124:
	movzx	ecx, ax
	cmp	rax, rcx
	je	.L126
	mov	edx, 1
.L126:
	mov	WORD PTR -16[rbp], ax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3700[rbp], eax
	mov	eax, DWORD PTR -3700[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 166
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3700[rbp]
	test	eax, eax
	jne	.L127
	mov	eax, DWORD PTR -3708[rbp]
	mov	ecx, DWORD PTR -3704[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 166
	mov	edi, eax
	call	runtime_assert
.L127:
	mov	DWORD PTR -3696[rbp], 65535
	mov	DWORD PTR -3692[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3696[rbp]
	mov	eax, DWORD PTR -3692[rbp]
	mov	ecx, edx
	mov	esi, eax
	mov	edx, 0
	mov	rax, rcx
	sub	rax, rsi
	jnb	.L128
	mov	edx, 1
.L128:
	movzx	ecx, ax
	cmp	rax, rcx
	je	.L130
	mov	edx, 1
.L130:
	mov	WORD PTR -16[rbp], ax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3688[rbp], eax
	mov	eax, DWORD PTR -3688[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 167
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3688[rbp]
	test	eax, eax
	jne	.L131
	mov	eax, DWORD PTR -3696[rbp]
	mov	ecx, DWORD PTR -3692[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 167
	mov	edi, eax
	call	runtime_assert
.L131:
	mov	DWORD PTR -3684[rbp], 0
	mov	DWORD PTR -3680[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3684[rbp]
	mov	edx, DWORD PTR -3680[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	mov	edx, eax
	cmp	rax, rdx
	je	.L132
	mov	ecx, 1
.L132:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3676[rbp], eax
	mov	eax, DWORD PTR -3676[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 169
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3676[rbp]
	test	eax, eax
	jne	.L133
	mov	eax, DWORD PTR -3684[rbp]
	mov	edx, DWORD PTR -3680[rbp]
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 169
	mov	edi, eax
	call	runtime_assert
.L133:
	mov	DWORD PTR -3672[rbp], 0
	mov	DWORD PTR -3668[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3672[rbp]
	mov	ecx, DWORD PTR -3668[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L134
	mov	edx, 1
.L134:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3664[rbp], eax
	mov	eax, DWORD PTR -3664[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 170
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3664[rbp]
	test	eax, eax
	jne	.L136
	mov	eax, DWORD PTR -3672[rbp]
	mov	ecx, DWORD PTR -3668[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 170
	mov	edi, eax
	call	runtime_assert
.L136:
	mov	DWORD PTR -3660[rbp], 1
	mov	DWORD PTR -3656[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3660[rbp]
	mov	ecx, DWORD PTR -3656[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L137
	mov	edx, 1
.L137:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3652[rbp], eax
	mov	eax, DWORD PTR -3652[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 171
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3652[rbp]
	test	eax, eax
	jne	.L139
	mov	eax, DWORD PTR -3660[rbp]
	mov	ecx, DWORD PTR -3656[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 171
	mov	edi, eax
	call	runtime_assert
.L139:
	mov	DWORD PTR -3648[rbp], -1
	mov	DWORD PTR -3644[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3648[rbp]
	mov	ecx, DWORD PTR -3644[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L140
	mov	edx, 1
.L140:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3640[rbp], eax
	mov	eax, DWORD PTR -3640[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 172
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3640[rbp]
	test	eax, eax
	jne	.L142
	mov	eax, DWORD PTR -3648[rbp]
	mov	ecx, DWORD PTR -3644[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 172
	mov	edi, eax
	call	runtime_assert
.L142:
	mov	DWORD PTR -3636[rbp], 0
	mov	DWORD PTR -3632[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3636[rbp]
	mov	edx, DWORD PTR -3632[rbp]
	cdqe
	movsx	rcx, edx
	mov	esi, 0
	mov	rdx, rax
	sub	rdx, rcx
	test	rcx, rcx
	jns	.L145
	and	rax, rdx
	test	rax, rax
	jns	.L143
	jmp	.L144
.L145:
	or	rax, rdx
	test	rax, rax
	jns	.L143
.L144:
	mov	esi, 1
.L143:
	mov	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rsi
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3628[rbp], eax
	mov	eax, DWORD PTR -3628[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 174
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3628[rbp]
	test	eax, eax
	jne	.L146
	mov	eax, DWORD PTR -3636[rbp]
	mov	edx, DWORD PTR -3632[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 174
	mov	edi, eax
	call	runtime_assert
.L146:
	mov	QWORD PTR -1520[rbp], 0
	mov	QWORD PTR -1512[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1520[rbp]
	mov	rcx, QWORD PTR -1512[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L147
	mov	edx, 1
.L147:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3624[rbp], eax
	mov	eax, DWORD PTR -3624[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 175
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3624[rbp]
	test	eax, eax
	jne	.L149
	mov	rax, QWORD PTR -1520[rbp]
	mov	rcx, QWORD PTR -1512[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 175
	mov	edi, eax
	call	runtime_assert
.L149:
	mov	QWORD PTR -1504[rbp], 1
	mov	QWORD PTR -1496[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1504[rbp]
	mov	rcx, QWORD PTR -1496[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L150
	mov	edx, 1
.L150:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3620[rbp], eax
	mov	eax, DWORD PTR -3620[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 176
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3620[rbp]
	test	eax, eax
	jne	.L152
	mov	rax, QWORD PTR -1504[rbp]
	mov	rcx, QWORD PTR -1496[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 176
	mov	edi, eax
	call	runtime_assert
.L152:
	mov	QWORD PTR -1488[rbp], -1
	mov	QWORD PTR -1480[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1488[rbp]
	mov	rcx, QWORD PTR -1480[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L153
	mov	edx, 1
.L153:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3616[rbp], eax
	mov	eax, DWORD PTR -3616[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 177
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3616[rbp]
	test	eax, eax
	jne	.L155
	mov	rax, QWORD PTR -1488[rbp]
	mov	rcx, QWORD PTR -1480[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 177
	mov	edi, eax
	call	runtime_assert
.L155:
	mov	DWORD PTR -3612[rbp], 0
	mov	DWORD PTR -3608[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3612[rbp]
	mov	edx, DWORD PTR -3608[rbp]
	cdqe
	movsx	rcx, edx
	mov	esi, 0
	mov	rdx, rax
	sub	rdx, rcx
	test	rcx, rcx
	jns	.L158
	and	rax, rdx
	test	rax, rax
	jns	.L156
	jmp	.L157
.L158:
	or	rax, rdx
	test	rax, rax
	jns	.L156
.L157:
	mov	esi, 1
.L156:
	mov	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rsi
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3604[rbp], eax
	mov	eax, DWORD PTR -3604[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 179
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3604[rbp]
	test	eax, eax
	jne	.L159
	mov	eax, DWORD PTR -3612[rbp]
	mov	edx, DWORD PTR -3608[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 179
	mov	edi, eax
	call	runtime_assert
.L159:
	mov	QWORD PTR -1472[rbp], 0
	mov	QWORD PTR -1464[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1472[rbp]
	mov	rcx, QWORD PTR -1464[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L160
	mov	edx, 1
.L160:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3600[rbp], eax
	mov	eax, DWORD PTR -3600[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 180
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3600[rbp]
	test	eax, eax
	jne	.L162
	mov	rax, QWORD PTR -1472[rbp]
	mov	rcx, QWORD PTR -1464[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 180
	mov	edi, eax
	call	runtime_assert
.L162:
	mov	QWORD PTR -1456[rbp], 1
	mov	QWORD PTR -1448[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1456[rbp]
	mov	rcx, QWORD PTR -1448[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L163
	mov	edx, 1
.L163:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3596[rbp], eax
	mov	eax, DWORD PTR -3596[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 181
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3596[rbp]
	test	eax, eax
	jne	.L165
	mov	rax, QWORD PTR -1456[rbp]
	mov	rcx, QWORD PTR -1448[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 181
	mov	edi, eax
	call	runtime_assert
.L165:
	mov	QWORD PTR -1440[rbp], -1
	mov	QWORD PTR -1432[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1440[rbp]
	mov	rcx, QWORD PTR -1432[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L166
	mov	edx, 1
.L166:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3592[rbp], eax
	mov	eax, DWORD PTR -3592[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 182
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3592[rbp]
	test	eax, eax
	jne	.L168
	mov	rax, QWORD PTR -1440[rbp]
	mov	rcx, QWORD PTR -1432[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 182
	mov	edi, eax
	call	runtime_assert
.L168:
	mov	DWORD PTR -3588[rbp], 0
	mov	DWORD PTR -3584[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3588[rbp]
	mov	edx, DWORD PTR -3584[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L169
	mov	ecx, 1
.L169:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3580[rbp], eax
	mov	eax, DWORD PTR -3580[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 184
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3580[rbp]
	test	eax, eax
	jne	.L170
	mov	eax, DWORD PTR -3588[rbp]
	mov	ecx, DWORD PTR -3584[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 184
	mov	edi, eax
	call	runtime_assert
.L170:
	mov	DWORD PTR -3576[rbp], 0
	mov	DWORD PTR -3572[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3576[rbp]
	mov	edx, DWORD PTR -3572[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L171
	mov	ecx, 1
.L171:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3568[rbp], eax
	mov	eax, DWORD PTR -3568[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 185
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3568[rbp]
	test	eax, eax
	jne	.L172
	mov	eax, DWORD PTR -3576[rbp]
	mov	ecx, DWORD PTR -3572[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 185
	mov	edi, eax
	call	runtime_assert
.L172:
	mov	DWORD PTR -3564[rbp], 1
	mov	DWORD PTR -3560[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3564[rbp]
	mov	edx, DWORD PTR -3560[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L173
	mov	ecx, 1
.L173:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3556[rbp], eax
	mov	eax, DWORD PTR -3556[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 186
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3556[rbp]
	test	eax, eax
	jne	.L174
	mov	eax, DWORD PTR -3564[rbp]
	mov	ecx, DWORD PTR -3560[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 186
	mov	edi, eax
	call	runtime_assert
.L174:
	mov	DWORD PTR -3552[rbp], 127
	mov	DWORD PTR -3548[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3552[rbp]
	mov	edx, DWORD PTR -3548[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L175
	mov	ecx, 1
.L175:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3544[rbp], eax
	mov	eax, DWORD PTR -3544[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 187
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3544[rbp]
	test	eax, eax
	jne	.L176
	mov	eax, DWORD PTR -3552[rbp]
	mov	ecx, DWORD PTR -3548[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 187
	mov	edi, eax
	call	runtime_assert
.L176:
	mov	DWORD PTR -3540[rbp], -128
	mov	DWORD PTR -3536[rbp], 1
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3540[rbp]
	mov	edx, DWORD PTR -3536[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L177
	mov	ecx, 1
.L177:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3532[rbp], eax
	mov	eax, DWORD PTR -3532[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 188
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3532[rbp]
	test	eax, eax
	jne	.L178
	mov	eax, DWORD PTR -3540[rbp]
	mov	ecx, DWORD PTR -3536[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 188
	mov	edi, eax
	call	runtime_assert
.L178:
	mov	DWORD PTR -3528[rbp], 0
	mov	DWORD PTR -3524[rbp], -128
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3528[rbp]
	mov	edx, DWORD PTR -3524[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L179
	mov	ecx, 1
.L179:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3520[rbp], eax
	mov	eax, DWORD PTR -3520[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 189
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3520[rbp]
	test	eax, eax
	jne	.L180
	mov	eax, DWORD PTR -3528[rbp]
	mov	ecx, DWORD PTR -3524[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 189
	mov	edi, eax
	call	runtime_assert
.L180:
	mov	DWORD PTR -3516[rbp], -1
	mov	DWORD PTR -3512[rbp], -128
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3516[rbp]
	mov	edx, DWORD PTR -3512[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L181
	mov	ecx, 1
.L181:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3508[rbp], eax
	mov	eax, DWORD PTR -3508[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 190
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3508[rbp]
	test	eax, eax
	jne	.L182
	mov	eax, DWORD PTR -3516[rbp]
	mov	ecx, DWORD PTR -3512[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 190
	mov	edi, eax
	call	runtime_assert
.L182:
	mov	DWORD PTR -3504[rbp], 0
	mov	DWORD PTR -3500[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3504[rbp]
	mov	edx, DWORD PTR -3500[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L183
	mov	ecx, 1
.L183:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3496[rbp], eax
	mov	eax, DWORD PTR -3496[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 192
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3496[rbp]
	test	eax, eax
	jne	.L184
	mov	eax, DWORD PTR -3504[rbp]
	mov	ecx, DWORD PTR -3500[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 192
	mov	edi, eax
	call	runtime_assert
.L184:
	mov	DWORD PTR -3492[rbp], 0
	mov	DWORD PTR -3488[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3492[rbp]
	mov	edx, DWORD PTR -3488[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L185
	mov	ecx, 1
.L185:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3484[rbp], eax
	mov	eax, DWORD PTR -3484[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 193
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3484[rbp]
	test	eax, eax
	jne	.L186
	mov	eax, DWORD PTR -3492[rbp]
	mov	ecx, DWORD PTR -3488[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 193
	mov	edi, eax
	call	runtime_assert
.L186:
	mov	DWORD PTR -3480[rbp], 1
	mov	DWORD PTR -3476[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3480[rbp]
	mov	edx, DWORD PTR -3476[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L187
	mov	ecx, 1
.L187:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3472[rbp], eax
	mov	eax, DWORD PTR -3472[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 194
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3472[rbp]
	test	eax, eax
	jne	.L188
	mov	eax, DWORD PTR -3480[rbp]
	mov	ecx, DWORD PTR -3476[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 194
	mov	edi, eax
	call	runtime_assert
.L188:
	mov	DWORD PTR -3468[rbp], 32767
	mov	DWORD PTR -3464[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3468[rbp]
	mov	edx, DWORD PTR -3464[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L189
	mov	ecx, 1
.L189:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3460[rbp], eax
	mov	eax, DWORD PTR -3460[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 195
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3460[rbp]
	test	eax, eax
	jne	.L190
	mov	eax, DWORD PTR -3468[rbp]
	mov	ecx, DWORD PTR -3464[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 195
	mov	edi, eax
	call	runtime_assert
.L190:
	mov	DWORD PTR -3456[rbp], 0
	mov	DWORD PTR -3452[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3456[rbp]
	mov	edx, DWORD PTR -3452[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L191
	mov	ecx, 1
.L191:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3448[rbp], eax
	mov	eax, DWORD PTR -3448[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 196
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3448[rbp]
	test	eax, eax
	jne	.L192
	mov	eax, DWORD PTR -3456[rbp]
	mov	ecx, DWORD PTR -3452[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 196
	mov	edi, eax
	call	runtime_assert
.L192:
	mov	DWORD PTR -3444[rbp], -1
	mov	DWORD PTR -3440[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3444[rbp]
	mov	edx, DWORD PTR -3440[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L193
	mov	ecx, 1
.L193:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3436[rbp], eax
	mov	eax, DWORD PTR -3436[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 197
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3436[rbp]
	test	eax, eax
	jne	.L194
	mov	eax, DWORD PTR -3444[rbp]
	mov	ecx, DWORD PTR -3440[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 197
	mov	edi, eax
	call	runtime_assert
.L194:
	mov	DWORD PTR -3432[rbp], -32768
	mov	DWORD PTR -3428[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3432[rbp]
	mov	edx, DWORD PTR -3428[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L195
	mov	ecx, 1
.L195:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3424[rbp], eax
	mov	eax, DWORD PTR -3424[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 198
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3424[rbp]
	test	eax, eax
	jne	.L196
	mov	eax, DWORD PTR -3432[rbp]
	mov	ecx, DWORD PTR -3428[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 198
	mov	edi, eax
	call	runtime_assert
.L196:
	mov	DWORD PTR -3420[rbp], 0
	mov	DWORD PTR -3416[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3420[rbp]
	mov	edx, DWORD PTR -3416[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L197
	mov	ecx, 1
.L197:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3412[rbp], eax
	mov	eax, DWORD PTR -3412[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 200
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3412[rbp]
	test	eax, eax
	jne	.L199
	mov	eax, DWORD PTR -3420[rbp]
	mov	ecx, DWORD PTR -3416[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 200
	mov	edi, eax
	call	runtime_assert
.L199:
	mov	DWORD PTR -3408[rbp], 0
	mov	DWORD PTR -3404[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3408[rbp]
	mov	edx, DWORD PTR -3404[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L200
	mov	ecx, 1
.L200:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3400[rbp], eax
	mov	eax, DWORD PTR -3400[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 201
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3400[rbp]
	test	eax, eax
	jne	.L202
	mov	eax, DWORD PTR -3408[rbp]
	mov	ecx, DWORD PTR -3404[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 201
	mov	edi, eax
	call	runtime_assert
.L202:
	mov	DWORD PTR -3396[rbp], 1
	mov	DWORD PTR -3392[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3396[rbp]
	mov	edx, DWORD PTR -3392[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L203
	mov	ecx, 1
.L203:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3388[rbp], eax
	mov	eax, DWORD PTR -3388[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 202
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3388[rbp]
	test	eax, eax
	jne	.L205
	mov	eax, DWORD PTR -3396[rbp]
	mov	ecx, DWORD PTR -3392[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 202
	mov	edi, eax
	call	runtime_assert
.L205:
	mov	DWORD PTR -3384[rbp], 2147483647
	mov	DWORD PTR -3380[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3384[rbp]
	mov	edx, DWORD PTR -3380[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L206
	mov	ecx, 1
.L206:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3376[rbp], eax
	mov	eax, DWORD PTR -3376[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 203
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3376[rbp]
	test	eax, eax
	jne	.L208
	mov	eax, DWORD PTR -3384[rbp]
	mov	ecx, DWORD PTR -3380[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 203
	mov	edi, eax
	call	runtime_assert
.L208:
	mov	DWORD PTR -3372[rbp], 0
	mov	DWORD PTR -3368[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3372[rbp]
	mov	edx, DWORD PTR -3368[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L209
	mov	ecx, 1
.L209:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3364[rbp], eax
	mov	eax, DWORD PTR -3364[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 204
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3364[rbp]
	test	eax, eax
	jne	.L211
	mov	eax, DWORD PTR -3372[rbp]
	mov	ecx, DWORD PTR -3368[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 204
	mov	edi, eax
	call	runtime_assert
.L211:
	mov	DWORD PTR -3360[rbp], -1
	mov	DWORD PTR -3356[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3360[rbp]
	mov	edx, DWORD PTR -3356[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L212
	mov	ecx, 1
.L212:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3352[rbp], eax
	mov	eax, DWORD PTR -3352[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 205
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3352[rbp]
	test	eax, eax
	jne	.L214
	mov	eax, DWORD PTR -3360[rbp]
	mov	ecx, DWORD PTR -3356[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 205
	mov	edi, eax
	call	runtime_assert
.L214:
	mov	DWORD PTR -3348[rbp], -2147483648
	mov	DWORD PTR -3344[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3348[rbp]
	mov	edx, DWORD PTR -3344[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L215
	mov	ecx, 1
.L215:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3340[rbp], eax
	mov	eax, DWORD PTR -3340[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 206
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3340[rbp]
	test	eax, eax
	jne	.L217
	mov	eax, DWORD PTR -3348[rbp]
	mov	ecx, DWORD PTR -3344[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 206
	mov	edi, eax
	call	runtime_assert
.L217:
	mov	DWORD PTR -3336[rbp], 0
	mov	DWORD PTR -3332[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3336[rbp]
	mov	edx, DWORD PTR -3332[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3328[rbp], eax
	mov	eax, DWORD PTR -3328[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 208
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3328[rbp]
	test	eax, eax
	jne	.L218
	mov	eax, DWORD PTR -3336[rbp]
	mov	edx, DWORD PTR -3332[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 208
	mov	edi, eax
	call	runtime_assert
.L218:
	mov	QWORD PTR -1424[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1416[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1424[rbp]
	mov	rdx, QWORD PTR -1416[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L219
	mov	ecx, 1
.L219:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3324[rbp], eax
	mov	eax, DWORD PTR -3324[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 209
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3324[rbp]
	test	eax, eax
	jne	.L221
	mov	rax, QWORD PTR -1424[rbp]
	mov	rcx, QWORD PTR -1416[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 209
	mov	edi, eax
	call	runtime_assert
.L221:
	mov	QWORD PTR -1408[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1400[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1408[rbp]
	mov	rdx, QWORD PTR -1400[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L222
	mov	ecx, 1
.L222:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3320[rbp], eax
	mov	eax, DWORD PTR -3320[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 210
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3320[rbp]
	test	eax, eax
	jne	.L224
	mov	rax, QWORD PTR -1408[rbp]
	mov	rcx, QWORD PTR -1400[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 210
	mov	edi, eax
	call	runtime_assert
.L224:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1392[rbp], rax
	mov	QWORD PTR -1384[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1392[rbp]
	mov	rdx, QWORD PTR -1384[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L225
	mov	ecx, 1
.L225:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3316[rbp], eax
	mov	eax, DWORD PTR -3316[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 211
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3316[rbp]
	test	eax, eax
	jne	.L227
	mov	rax, QWORD PTR -1392[rbp]
	mov	rcx, QWORD PTR -1384[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 211
	mov	edi, eax
	call	runtime_assert
.L227:
	mov	QWORD PTR -1376[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1368[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1376[rbp]
	mov	rdx, QWORD PTR -1368[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L228
	mov	ecx, 1
.L228:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3312[rbp], eax
	mov	eax, DWORD PTR -3312[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 212
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3312[rbp]
	test	eax, eax
	jne	.L230
	mov	rax, QWORD PTR -1376[rbp]
	mov	rcx, QWORD PTR -1368[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 212
	mov	edi, eax
	call	runtime_assert
.L230:
	mov	QWORD PTR -1360[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1352[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1360[rbp]
	mov	rdx, QWORD PTR -1352[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L231
	mov	ecx, 1
.L231:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3308[rbp], eax
	mov	eax, DWORD PTR -3308[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 213
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3308[rbp]
	test	eax, eax
	jne	.L233
	mov	rax, QWORD PTR -1360[rbp]
	mov	rcx, QWORD PTR -1352[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 213
	mov	edi, eax
	call	runtime_assert
.L233:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1344[rbp], rax
	mov	QWORD PTR -1336[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1344[rbp]
	mov	rdx, QWORD PTR -1336[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L234
	mov	ecx, 1
.L234:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3304[rbp], eax
	mov	eax, DWORD PTR -3304[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 214
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3304[rbp]
	test	eax, eax
	jne	.L236
	mov	rax, QWORD PTR -1344[rbp]
	mov	rcx, QWORD PTR -1336[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 214
	mov	edi, eax
	call	runtime_assert
.L236:
	mov	DWORD PTR -3300[rbp], 0
	mov	DWORD PTR -3296[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3300[rbp]
	mov	edx, DWORD PTR -3296[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3292[rbp], eax
	mov	eax, DWORD PTR -3292[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 216
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3292[rbp]
	test	eax, eax
	jne	.L237
	mov	eax, DWORD PTR -3300[rbp]
	mov	edx, DWORD PTR -3296[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 216
	mov	edi, eax
	call	runtime_assert
.L237:
	mov	QWORD PTR -1328[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1320[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1328[rbp]
	mov	rdx, QWORD PTR -1320[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L238
	mov	ecx, 1
.L238:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3288[rbp], eax
	mov	eax, DWORD PTR -3288[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 217
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3288[rbp]
	test	eax, eax
	jne	.L240
	mov	rax, QWORD PTR -1328[rbp]
	mov	rcx, QWORD PTR -1320[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 217
	mov	edi, eax
	call	runtime_assert
.L240:
	mov	QWORD PTR -1312[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1304[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1312[rbp]
	mov	rdx, QWORD PTR -1304[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L241
	mov	ecx, 1
.L241:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3284[rbp], eax
	mov	eax, DWORD PTR -3284[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 218
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3284[rbp]
	test	eax, eax
	jne	.L243
	mov	rax, QWORD PTR -1312[rbp]
	mov	rcx, QWORD PTR -1304[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 218
	mov	edi, eax
	call	runtime_assert
.L243:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1296[rbp], rax
	mov	QWORD PTR -1288[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1296[rbp]
	mov	rdx, QWORD PTR -1288[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L244
	mov	ecx, 1
.L244:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3280[rbp], eax
	mov	eax, DWORD PTR -3280[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 219
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3280[rbp]
	test	eax, eax
	jne	.L246
	mov	rax, QWORD PTR -1296[rbp]
	mov	rcx, QWORD PTR -1288[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 219
	mov	edi, eax
	call	runtime_assert
.L246:
	mov	QWORD PTR -1280[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1272[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1280[rbp]
	mov	rdx, QWORD PTR -1272[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L247
	mov	ecx, 1
.L247:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3276[rbp], eax
	mov	eax, DWORD PTR -3276[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 220
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3276[rbp]
	test	eax, eax
	jne	.L249
	mov	rax, QWORD PTR -1280[rbp]
	mov	rcx, QWORD PTR -1272[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 220
	mov	edi, eax
	call	runtime_assert
.L249:
	mov	QWORD PTR -1264[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1256[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1264[rbp]
	mov	rdx, QWORD PTR -1256[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L250
	mov	ecx, 1
.L250:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3272[rbp], eax
	mov	eax, DWORD PTR -3272[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 221
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3272[rbp]
	test	eax, eax
	jne	.L252
	mov	rax, QWORD PTR -1264[rbp]
	mov	rcx, QWORD PTR -1256[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 221
	mov	edi, eax
	call	runtime_assert
.L252:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -1248[rbp], rax
	mov	QWORD PTR -1240[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1248[rbp]
	mov	rdx, QWORD PTR -1240[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L253
	mov	ecx, 1
.L253:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3268[rbp], eax
	mov	eax, DWORD PTR -3268[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 222
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3268[rbp]
	test	eax, eax
	jne	.L255
	mov	rax, QWORD PTR -1248[rbp]
	mov	rcx, QWORD PTR -1240[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 222
	mov	edi, eax
	call	runtime_assert
.L255:
	mov	DWORD PTR -3264[rbp], 0
	mov	DWORD PTR -3260[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	eax, DWORD PTR -3264[rbp]
	mov	edx, DWORD PTR -3260[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L256
	mov	ecx, 1
.L256:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3256[rbp], eax
	mov	eax, DWORD PTR -3256[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 224
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3256[rbp]
	test	eax, eax
	jne	.L257
	mov	eax, DWORD PTR -3264[rbp]
	mov	ecx, DWORD PTR -3260[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 224
	mov	edi, eax
	call	runtime_assert
.L257:
	mov	DWORD PTR -3252[rbp], 0
	mov	DWORD PTR -3248[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3252[rbp]
	mov	eax, DWORD PTR -3248[rbp]
	mov	edx, edx
	mov	esi, eax
	mov	ecx, 0
	mov	rax, rdx
	sub	rax, rsi
	jnb	.L258
	mov	ecx, 1
.L258:
	movzx	edx, al
	cmp	rax, rdx
	je	.L260
	mov	ecx, 1
.L260:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3244[rbp], eax
	mov	eax, DWORD PTR -3244[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 225
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3244[rbp]
	test	eax, eax
	jne	.L261
	mov	eax, DWORD PTR -3252[rbp]
	mov	ecx, DWORD PTR -3248[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 225
	mov	edi, eax
	call	runtime_assert
.L261:
	mov	DWORD PTR -3240[rbp], 1
	mov	DWORD PTR -3236[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3240[rbp]
	mov	eax, DWORD PTR -3236[rbp]
	mov	edx, edx
	mov	esi, eax
	mov	ecx, 0
	mov	rax, rdx
	sub	rax, rsi
	jnb	.L262
	mov	ecx, 1
.L262:
	movzx	edx, al
	cmp	rax, rdx
	je	.L264
	mov	ecx, 1
.L264:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3232[rbp], eax
	mov	eax, DWORD PTR -3232[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 226
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3232[rbp]
	test	eax, eax
	jne	.L265
	mov	eax, DWORD PTR -3240[rbp]
	mov	ecx, DWORD PTR -3236[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 226
	mov	edi, eax
	call	runtime_assert
.L265:
	mov	DWORD PTR -3228[rbp], 255
	mov	DWORD PTR -3224[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3228[rbp]
	mov	eax, DWORD PTR -3224[rbp]
	mov	edx, edx
	mov	esi, eax
	mov	ecx, 0
	mov	rax, rdx
	sub	rax, rsi
	jnb	.L266
	mov	ecx, 1
.L266:
	movzx	edx, al
	cmp	rax, rdx
	je	.L268
	mov	ecx, 1
.L268:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3220[rbp], eax
	mov	eax, DWORD PTR -3220[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 227
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3220[rbp]
	test	eax, eax
	jne	.L269
	mov	eax, DWORD PTR -3228[rbp]
	mov	ecx, DWORD PTR -3224[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 227
	mov	edi, eax
	call	runtime_assert
.L269:
	mov	DWORD PTR -3216[rbp], 0
	mov	DWORD PTR -3212[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3216[rbp]
	mov	edx, DWORD PTR -3212[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L270
	mov	ecx, 1
.L270:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3208[rbp], eax
	mov	eax, DWORD PTR -3208[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 229
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3208[rbp]
	test	eax, eax
	jne	.L271
	mov	eax, DWORD PTR -3216[rbp]
	mov	ecx, DWORD PTR -3212[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 229
	mov	edi, eax
	call	runtime_assert
.L271:
	mov	DWORD PTR -3204[rbp], 0
	mov	DWORD PTR -3200[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3204[rbp]
	mov	eax, DWORD PTR -3200[rbp]
	mov	ecx, edx
	mov	esi, eax
	mov	edx, 0
	mov	rax, rcx
	sub	rax, rsi
	jnb	.L272
	mov	edx, 1
.L272:
	movzx	ecx, ax
	cmp	rax, rcx
	je	.L274
	mov	edx, 1
.L274:
	mov	WORD PTR -16[rbp], ax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3196[rbp], eax
	mov	eax, DWORD PTR -3196[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 230
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3196[rbp]
	test	eax, eax
	jne	.L275
	mov	eax, DWORD PTR -3204[rbp]
	mov	ecx, DWORD PTR -3200[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 230
	mov	edi, eax
	call	runtime_assert
.L275:
	mov	DWORD PTR -3192[rbp], 1
	mov	DWORD PTR -3188[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3192[rbp]
	mov	eax, DWORD PTR -3188[rbp]
	mov	ecx, edx
	mov	esi, eax
	mov	edx, 0
	mov	rax, rcx
	sub	rax, rsi
	jnb	.L276
	mov	edx, 1
.L276:
	movzx	ecx, ax
	cmp	rax, rcx
	je	.L278
	mov	edx, 1
.L278:
	mov	WORD PTR -16[rbp], ax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3184[rbp], eax
	mov	eax, DWORD PTR -3184[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 231
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3184[rbp]
	test	eax, eax
	jne	.L279
	mov	eax, DWORD PTR -3192[rbp]
	mov	ecx, DWORD PTR -3188[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 231
	mov	edi, eax
	call	runtime_assert
.L279:
	mov	DWORD PTR -3180[rbp], 65535
	mov	DWORD PTR -3176[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3180[rbp]
	mov	eax, DWORD PTR -3176[rbp]
	mov	ecx, edx
	mov	esi, eax
	mov	edx, 0
	mov	rax, rcx
	sub	rax, rsi
	jnb	.L280
	mov	edx, 1
.L280:
	movzx	ecx, ax
	cmp	rax, rcx
	je	.L282
	mov	edx, 1
.L282:
	mov	WORD PTR -16[rbp], ax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3172[rbp], eax
	mov	eax, DWORD PTR -3172[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 232
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3172[rbp]
	test	eax, eax
	jne	.L283
	mov	eax, DWORD PTR -3180[rbp]
	mov	ecx, DWORD PTR -3176[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 232
	mov	edi, eax
	call	runtime_assert
.L283:
	mov	DWORD PTR -3168[rbp], 0
	mov	DWORD PTR -3164[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3168[rbp]
	mov	edx, DWORD PTR -3164[rbp]
	mov	ecx, 0
	cdqe
	movsx	rdx, edx
	sub	rax, rdx
	mov	edx, eax
	cmp	rax, rdx
	je	.L284
	mov	ecx, 1
.L284:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3160[rbp], eax
	mov	eax, DWORD PTR -3160[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 234
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3160[rbp]
	test	eax, eax
	jne	.L285
	mov	eax, DWORD PTR -3168[rbp]
	mov	edx, DWORD PTR -3164[rbp]
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 234
	mov	edi, eax
	call	runtime_assert
.L285:
	mov	DWORD PTR -3156[rbp], 0
	mov	DWORD PTR -3152[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3156[rbp]
	mov	ecx, DWORD PTR -3152[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L286
	mov	edx, 1
.L286:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3148[rbp], eax
	mov	eax, DWORD PTR -3148[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 235
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3148[rbp]
	test	eax, eax
	jne	.L288
	mov	eax, DWORD PTR -3156[rbp]
	mov	ecx, DWORD PTR -3152[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 235
	mov	edi, eax
	call	runtime_assert
.L288:
	mov	DWORD PTR -3144[rbp], 1
	mov	DWORD PTR -3140[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3144[rbp]
	mov	ecx, DWORD PTR -3140[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L289
	mov	edx, 1
.L289:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3136[rbp], eax
	mov	eax, DWORD PTR -3136[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 236
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3136[rbp]
	test	eax, eax
	jne	.L291
	mov	eax, DWORD PTR -3144[rbp]
	mov	ecx, DWORD PTR -3140[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 236
	mov	edi, eax
	call	runtime_assert
.L291:
	mov	DWORD PTR -3132[rbp], -1
	mov	DWORD PTR -3128[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3132[rbp]
	mov	ecx, DWORD PTR -3128[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L292
	mov	edx, 1
.L292:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3124[rbp], eax
	mov	eax, DWORD PTR -3124[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 237
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3124[rbp]
	test	eax, eax
	jne	.L294
	mov	eax, DWORD PTR -3132[rbp]
	mov	ecx, DWORD PTR -3128[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 237
	mov	edi, eax
	call	runtime_assert
.L294:
	mov	DWORD PTR -3120[rbp], 0
	mov	DWORD PTR -3116[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3120[rbp]
	mov	edx, DWORD PTR -3116[rbp]
	cdqe
	movsx	rcx, edx
	mov	esi, 0
	mov	rdx, rax
	sub	rdx, rcx
	test	rcx, rcx
	jns	.L297
	and	rax, rdx
	test	rax, rax
	jns	.L295
	jmp	.L296
.L297:
	or	rax, rdx
	test	rax, rax
	jns	.L295
.L296:
	mov	esi, 1
.L295:
	mov	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rsi
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3112[rbp], eax
	mov	eax, DWORD PTR -3112[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 239
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3112[rbp]
	test	eax, eax
	jne	.L298
	mov	eax, DWORD PTR -3120[rbp]
	mov	edx, DWORD PTR -3116[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 239
	mov	edi, eax
	call	runtime_assert
.L298:
	mov	QWORD PTR -1232[rbp], 0
	mov	QWORD PTR -1224[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1232[rbp]
	mov	rcx, QWORD PTR -1224[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L299
	mov	edx, 1
.L299:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3108[rbp], eax
	mov	eax, DWORD PTR -3108[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 240
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3108[rbp]
	test	eax, eax
	jne	.L301
	mov	rax, QWORD PTR -1232[rbp]
	mov	rcx, QWORD PTR -1224[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 240
	mov	edi, eax
	call	runtime_assert
.L301:
	mov	QWORD PTR -1216[rbp], 1
	mov	QWORD PTR -1208[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1216[rbp]
	mov	rcx, QWORD PTR -1208[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L302
	mov	edx, 1
.L302:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3104[rbp], eax
	mov	eax, DWORD PTR -3104[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 241
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3104[rbp]
	test	eax, eax
	jne	.L304
	mov	rax, QWORD PTR -1216[rbp]
	mov	rcx, QWORD PTR -1208[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 241
	mov	edi, eax
	call	runtime_assert
.L304:
	mov	QWORD PTR -1200[rbp], -1
	mov	QWORD PTR -1192[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1200[rbp]
	mov	rcx, QWORD PTR -1192[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L305
	mov	edx, 1
.L305:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3100[rbp], eax
	mov	eax, DWORD PTR -3100[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 242
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3100[rbp]
	test	eax, eax
	jne	.L307
	mov	rax, QWORD PTR -1200[rbp]
	mov	rcx, QWORD PTR -1192[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 242
	mov	edi, eax
	call	runtime_assert
.L307:
	mov	DWORD PTR -3096[rbp], 0
	mov	DWORD PTR -3092[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -3096[rbp]
	mov	edx, DWORD PTR -3092[rbp]
	cdqe
	movsx	rcx, edx
	mov	esi, 0
	mov	rdx, rax
	sub	rdx, rcx
	test	rcx, rcx
	jns	.L310
	and	rax, rdx
	test	rax, rax
	jns	.L308
	jmp	.L309
.L310:
	or	rax, rdx
	test	rax, rax
	jns	.L308
.L309:
	mov	esi, 1
.L308:
	mov	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rsi
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3088[rbp], eax
	mov	eax, DWORD PTR -3088[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 244
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3088[rbp]
	test	eax, eax
	jne	.L311
	mov	eax, DWORD PTR -3096[rbp]
	mov	edx, DWORD PTR -3092[rbp]
	sub	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 244
	mov	edi, eax
	call	runtime_assert
.L311:
	mov	QWORD PTR -1184[rbp], 0
	mov	QWORD PTR -1176[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1184[rbp]
	mov	rcx, QWORD PTR -1176[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L312
	mov	edx, 1
.L312:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3084[rbp], eax
	mov	eax, DWORD PTR -3084[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 245
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3084[rbp]
	test	eax, eax
	jne	.L314
	mov	rax, QWORD PTR -1184[rbp]
	mov	rcx, QWORD PTR -1176[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 245
	mov	edi, eax
	call	runtime_assert
.L314:
	mov	QWORD PTR -1168[rbp], 1
	mov	QWORD PTR -1160[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1168[rbp]
	mov	rcx, QWORD PTR -1160[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L315
	mov	edx, 1
.L315:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3080[rbp], eax
	mov	eax, DWORD PTR -3080[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 246
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3080[rbp]
	test	eax, eax
	jne	.L317
	mov	rax, QWORD PTR -1168[rbp]
	mov	rcx, QWORD PTR -1160[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 246
	mov	edi, eax
	call	runtime_assert
.L317:
	mov	QWORD PTR -1152[rbp], -1
	mov	QWORD PTR -1144[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR -1144[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L318
	mov	edx, 1
.L318:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3076[rbp], eax
	mov	eax, DWORD PTR -3076[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 247
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3076[rbp]
	test	eax, eax
	jne	.L320
	mov	rax, QWORD PTR -1152[rbp]
	mov	rcx, QWORD PTR -1144[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 247
	mov	edi, eax
	call	runtime_assert
.L320:
	mov	DWORD PTR -3072[rbp], 0
	mov	DWORD PTR -3068[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3072[rbp]
	mov	eax, DWORD PTR -3068[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L321
	mov	ecx, 1
.L321:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3064[rbp], eax
	mov	eax, DWORD PTR -3064[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 250
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3064[rbp]
	test	eax, eax
	jne	.L322
	mov	edx, DWORD PTR -3072[rbp]
	mov	eax, DWORD PTR -3068[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 250
	mov	edi, eax
	call	runtime_assert
.L322:
	mov	DWORD PTR -3060[rbp], 0
	mov	DWORD PTR -3056[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3060[rbp]
	mov	eax, DWORD PTR -3056[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L323
	mov	ecx, 1
.L323:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3052[rbp], eax
	mov	eax, DWORD PTR -3052[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 251
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3052[rbp]
	test	eax, eax
	jne	.L324
	mov	edx, DWORD PTR -3060[rbp]
	mov	eax, DWORD PTR -3056[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 251
	mov	edi, eax
	call	runtime_assert
.L324:
	mov	DWORD PTR -3048[rbp], 1
	mov	DWORD PTR -3044[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3048[rbp]
	mov	eax, DWORD PTR -3044[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L325
	mov	ecx, 1
.L325:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3040[rbp], eax
	mov	eax, DWORD PTR -3040[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 252
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3040[rbp]
	test	eax, eax
	jne	.L326
	mov	edx, DWORD PTR -3048[rbp]
	mov	eax, DWORD PTR -3044[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 252
	mov	edi, eax
	call	runtime_assert
.L326:
	mov	DWORD PTR -3036[rbp], 2
	mov	DWORD PTR -3032[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3036[rbp]
	mov	eax, DWORD PTR -3032[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L327
	mov	ecx, 1
.L327:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3028[rbp], eax
	mov	eax, DWORD PTR -3028[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 253
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3028[rbp]
	test	eax, eax
	jne	.L328
	mov	edx, DWORD PTR -3036[rbp]
	mov	eax, DWORD PTR -3032[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 253
	mov	edi, eax
	call	runtime_assert
.L328:
	mov	DWORD PTR -3024[rbp], 255
	mov	DWORD PTR -3020[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -3024[rbp]
	mov	eax, DWORD PTR -3020[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L329
	mov	ecx, 1
.L329:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3016[rbp], eax
	mov	eax, DWORD PTR -3016[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 254
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3016[rbp]
	test	eax, eax
	jne	.L330
	mov	edx, DWORD PTR -3024[rbp]
	mov	eax, DWORD PTR -3020[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 254
	mov	edi, eax
	call	runtime_assert
.L330:
	mov	DWORD PTR -3012[rbp], 0
	mov	DWORD PTR -3008[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3012[rbp]
	mov	eax, DWORD PTR -3008[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L331
	mov	ecx, 1
.L331:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -3004[rbp], eax
	mov	eax, DWORD PTR -3004[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 256
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -3004[rbp]
	test	eax, eax
	jne	.L332
	mov	edx, DWORD PTR -3012[rbp]
	mov	eax, DWORD PTR -3008[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 256
	mov	edi, eax
	call	runtime_assert
.L332:
	mov	DWORD PTR -3000[rbp], 0
	mov	DWORD PTR -2996[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -3000[rbp]
	mov	eax, DWORD PTR -2996[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L333
	mov	ecx, 1
.L333:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2992[rbp], eax
	mov	eax, DWORD PTR -2992[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 257
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2992[rbp]
	test	eax, eax
	jne	.L334
	mov	edx, DWORD PTR -3000[rbp]
	mov	eax, DWORD PTR -2996[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 257
	mov	edi, eax
	call	runtime_assert
.L334:
	mov	DWORD PTR -2988[rbp], 1
	mov	DWORD PTR -2984[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2988[rbp]
	mov	eax, DWORD PTR -2984[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L335
	mov	ecx, 1
.L335:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2980[rbp], eax
	mov	eax, DWORD PTR -2980[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 258
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2980[rbp]
	test	eax, eax
	jne	.L336
	mov	edx, DWORD PTR -2988[rbp]
	mov	eax, DWORD PTR -2984[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 258
	mov	edi, eax
	call	runtime_assert
.L336:
	mov	DWORD PTR -2976[rbp], 65535
	mov	DWORD PTR -2972[rbp], 2
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2976[rbp]
	mov	eax, DWORD PTR -2972[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L337
	mov	ecx, 1
.L337:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2968[rbp], eax
	mov	eax, DWORD PTR -2968[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 259
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2968[rbp]
	test	eax, eax
	jne	.L338
	mov	edx, DWORD PTR -2976[rbp]
	mov	eax, DWORD PTR -2972[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 259
	mov	edi, eax
	call	runtime_assert
.L338:
	mov	DWORD PTR -2964[rbp], 65535
	mov	DWORD PTR -2960[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2964[rbp]
	mov	eax, DWORD PTR -2960[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L339
	mov	ecx, 1
.L339:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2956[rbp], eax
	mov	eax, DWORD PTR -2956[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 260
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2956[rbp]
	test	eax, eax
	jne	.L340
	mov	edx, DWORD PTR -2964[rbp]
	mov	eax, DWORD PTR -2960[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 260
	mov	edi, eax
	call	runtime_assert
.L340:
	mov	DWORD PTR -2952[rbp], 0
	mov	DWORD PTR -2948[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2952[rbp]
	mov	eax, DWORD PTR -2948[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	mov	edx, eax
	cmp	rax, rdx
	je	.L341
	mov	ecx, 1
.L341:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2944[rbp], eax
	mov	eax, DWORD PTR -2944[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 262
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2944[rbp]
	test	eax, eax
	jne	.L342
	mov	edx, DWORD PTR -2952[rbp]
	mov	eax, DWORD PTR -2948[rbp]
	imul	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 262
	mov	edi, eax
	call	runtime_assert
.L342:
	mov	DWORD PTR -2940[rbp], 0
	mov	DWORD PTR -2936[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2940[rbp]
	mov	edx, DWORD PTR -2936[rbp]
	mov	ecx, 0
	mul	edx
	jno	.L343
	mov	ecx, 1
.L343:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2932[rbp], eax
	mov	eax, DWORD PTR -2932[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 263
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2932[rbp]
	test	eax, eax
	jne	.L345
	mov	edx, DWORD PTR -2940[rbp]
	mov	eax, DWORD PTR -2936[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 263
	mov	edi, eax
	call	runtime_assert
.L345:
	mov	DWORD PTR -2928[rbp], 1
	mov	DWORD PTR -2924[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2928[rbp]
	mov	edx, DWORD PTR -2924[rbp]
	mov	ecx, 0
	mul	edx
	jno	.L346
	mov	ecx, 1
.L346:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2920[rbp], eax
	mov	eax, DWORD PTR -2920[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 264
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2920[rbp]
	test	eax, eax
	jne	.L348
	mov	edx, DWORD PTR -2928[rbp]
	mov	eax, DWORD PTR -2924[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 264
	mov	edi, eax
	call	runtime_assert
.L348:
	mov	DWORD PTR -2916[rbp], 2
	mov	DWORD PTR -2912[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2916[rbp]
	mov	edx, DWORD PTR -2912[rbp]
	mov	ecx, 0
	mul	edx
	jno	.L349
	mov	ecx, 1
.L349:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2908[rbp], eax
	mov	eax, DWORD PTR -2908[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 265
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2908[rbp]
	test	eax, eax
	jne	.L351
	mov	edx, DWORD PTR -2916[rbp]
	mov	eax, DWORD PTR -2912[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 265
	mov	edi, eax
	call	runtime_assert
.L351:
	mov	DWORD PTR -2904[rbp], -1
	mov	DWORD PTR -2900[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2904[rbp]
	mov	edx, DWORD PTR -2900[rbp]
	mov	ecx, 0
	mul	edx
	jno	.L352
	mov	ecx, 1
.L352:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2896[rbp], eax
	mov	eax, DWORD PTR -2896[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 266
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2896[rbp]
	test	eax, eax
	jne	.L354
	mov	edx, DWORD PTR -2904[rbp]
	mov	eax, DWORD PTR -2900[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 266
	mov	edi, eax
	call	runtime_assert
.L354:
	mov	DWORD PTR -2892[rbp], 0
	mov	DWORD PTR -2888[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2892[rbp]
	mov	edx, DWORD PTR -2888[rbp]
	cdqe
	movsx	rdx, edx
	mov	ecx, 0
	mov	rsi, rax
	and	rsi, rdx
	test	rsi, rsi
	jns	.L358
	neg	rax
	neg	rdx
	jmp	.L357
.L358:
	mov	rsi, rax
	xor	rsi, rdx
	test	rsi, rsi
	jns	.L357
	test	rax, rax
	je	.L357
	test	rdx, rdx
	je	.L357
	mov	ecx, 1
.L357:
	mul	rdx
	jno	.L355
	mov	ecx, 1
.L355:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2884[rbp], eax
	mov	eax, DWORD PTR -2884[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 268
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2884[rbp]
	test	eax, eax
	jne	.L359
	mov	edx, DWORD PTR -2892[rbp]
	mov	eax, DWORD PTR -2888[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 268
	mov	edi, eax
	call	runtime_assert
.L359:
	mov	QWORD PTR -1136[rbp], 0
	mov	QWORD PTR -1128[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1136[rbp]
	mov	rdx, QWORD PTR -1128[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L360
	mov	ecx, 1
.L360:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2880[rbp], eax
	mov	eax, DWORD PTR -2880[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 269
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2880[rbp]
	test	eax, eax
	jne	.L362
	mov	rdx, QWORD PTR -1136[rbp]
	mov	rax, QWORD PTR -1128[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 269
	mov	edi, eax
	call	runtime_assert
.L362:
	mov	QWORD PTR -1120[rbp], 1
	mov	QWORD PTR -1112[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1120[rbp]
	mov	rdx, QWORD PTR -1112[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L363
	mov	ecx, 1
.L363:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2876[rbp], eax
	mov	eax, DWORD PTR -2876[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 270
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2876[rbp]
	test	eax, eax
	jne	.L365
	mov	rdx, QWORD PTR -1120[rbp]
	mov	rax, QWORD PTR -1112[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 270
	mov	edi, eax
	call	runtime_assert
.L365:
	mov	QWORD PTR -1104[rbp], 2
	mov	QWORD PTR -1096[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1104[rbp]
	mov	rdx, QWORD PTR -1096[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L366
	mov	ecx, 1
.L366:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2872[rbp], eax
	mov	eax, DWORD PTR -2872[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 271
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2872[rbp]
	test	eax, eax
	jne	.L368
	mov	rdx, QWORD PTR -1104[rbp]
	mov	rax, QWORD PTR -1096[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 271
	mov	edi, eax
	call	runtime_assert
.L368:
	mov	QWORD PTR -1088[rbp], -1
	mov	QWORD PTR -1080[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1088[rbp]
	mov	rdx, QWORD PTR -1080[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L369
	mov	ecx, 1
.L369:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2868[rbp], eax
	mov	eax, DWORD PTR -2868[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 272
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2868[rbp]
	test	eax, eax
	jne	.L371
	mov	rdx, QWORD PTR -1088[rbp]
	mov	rax, QWORD PTR -1080[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 272
	mov	edi, eax
	call	runtime_assert
.L371:
	mov	DWORD PTR -2864[rbp], 0
	mov	DWORD PTR -2860[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2864[rbp]
	mov	edx, DWORD PTR -2860[rbp]
	cdqe
	movsx	rdx, edx
	mov	ecx, 0
	mov	rsi, rax
	and	rsi, rdx
	test	rsi, rsi
	jns	.L375
	neg	rax
	neg	rdx
	jmp	.L374
.L375:
	mov	rsi, rax
	xor	rsi, rdx
	test	rsi, rsi
	jns	.L374
	test	rax, rax
	je	.L374
	test	rdx, rdx
	je	.L374
	mov	ecx, 1
.L374:
	mul	rdx
	jno	.L372
	mov	ecx, 1
.L372:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2856[rbp], eax
	mov	eax, DWORD PTR -2856[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 274
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2856[rbp]
	test	eax, eax
	jne	.L376
	mov	edx, DWORD PTR -2864[rbp]
	mov	eax, DWORD PTR -2860[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 274
	mov	edi, eax
	call	runtime_assert
.L376:
	mov	QWORD PTR -1072[rbp], 0
	mov	QWORD PTR -1064[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1072[rbp]
	mov	rdx, QWORD PTR -1064[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L377
	mov	ecx, 1
.L377:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2852[rbp], eax
	mov	eax, DWORD PTR -2852[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 275
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2852[rbp]
	test	eax, eax
	jne	.L379
	mov	rdx, QWORD PTR -1072[rbp]
	mov	rax, QWORD PTR -1064[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 275
	mov	edi, eax
	call	runtime_assert
.L379:
	mov	QWORD PTR -1056[rbp], 1
	mov	QWORD PTR -1048[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1056[rbp]
	mov	rdx, QWORD PTR -1048[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L380
	mov	ecx, 1
.L380:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2848[rbp], eax
	mov	eax, DWORD PTR -2848[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 276
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2848[rbp]
	test	eax, eax
	jne	.L382
	mov	rdx, QWORD PTR -1056[rbp]
	mov	rax, QWORD PTR -1048[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 276
	mov	edi, eax
	call	runtime_assert
.L382:
	mov	QWORD PTR -1040[rbp], 2
	mov	QWORD PTR -1032[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1040[rbp]
	mov	rdx, QWORD PTR -1032[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L383
	mov	ecx, 1
.L383:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2844[rbp], eax
	mov	eax, DWORD PTR -2844[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 277
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2844[rbp]
	test	eax, eax
	jne	.L385
	mov	rdx, QWORD PTR -1040[rbp]
	mov	rax, QWORD PTR -1032[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 277
	mov	edi, eax
	call	runtime_assert
.L385:
	mov	QWORD PTR -1024[rbp], -1
	mov	QWORD PTR -1016[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -1024[rbp]
	mov	rdx, QWORD PTR -1016[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L386
	mov	ecx, 1
.L386:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2840[rbp], eax
	mov	eax, DWORD PTR -2840[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 278
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2840[rbp]
	test	eax, eax
	jne	.L388
	mov	rdx, QWORD PTR -1024[rbp]
	mov	rax, QWORD PTR -1016[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 278
	mov	edi, eax
	call	runtime_assert
.L388:
	mov	DWORD PTR -2836[rbp], 0
	mov	DWORD PTR -2832[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2836[rbp]
	mov	eax, DWORD PTR -2832[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L389
	mov	ecx, 1
.L389:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2828[rbp], eax
	mov	eax, DWORD PTR -2828[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 280
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2828[rbp]
	test	eax, eax
	jne	.L390
	mov	edx, DWORD PTR -2836[rbp]
	mov	eax, DWORD PTR -2832[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 280
	mov	edi, eax
	call	runtime_assert
.L390:
	mov	DWORD PTR -2824[rbp], 0
	mov	DWORD PTR -2820[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2824[rbp]
	mov	eax, DWORD PTR -2820[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L391
	mov	ecx, 1
.L391:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2816[rbp], eax
	mov	eax, DWORD PTR -2816[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 281
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2816[rbp]
	test	eax, eax
	jne	.L392
	mov	edx, DWORD PTR -2824[rbp]
	mov	eax, DWORD PTR -2820[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 281
	mov	edi, eax
	call	runtime_assert
.L392:
	mov	DWORD PTR -2812[rbp], 1
	mov	DWORD PTR -2808[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2812[rbp]
	mov	eax, DWORD PTR -2808[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L393
	mov	ecx, 1
.L393:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2804[rbp], eax
	mov	eax, DWORD PTR -2804[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 282
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2804[rbp]
	test	eax, eax
	jne	.L394
	mov	edx, DWORD PTR -2812[rbp]
	mov	eax, DWORD PTR -2808[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 282
	mov	edi, eax
	call	runtime_assert
.L394:
	mov	DWORD PTR -2800[rbp], 127
	mov	DWORD PTR -2796[rbp], 127
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2800[rbp]
	mov	eax, DWORD PTR -2796[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L395
	mov	ecx, 1
.L395:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2792[rbp], eax
	mov	eax, DWORD PTR -2792[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 283
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2792[rbp]
	test	eax, eax
	jne	.L396
	mov	edx, DWORD PTR -2800[rbp]
	mov	eax, DWORD PTR -2796[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 283
	mov	edi, eax
	call	runtime_assert
.L396:
	mov	DWORD PTR -2788[rbp], -128
	mov	DWORD PTR -2784[rbp], 1
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2788[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L397
	mov	ecx, 1
.L397:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2780[rbp], eax
	mov	eax, DWORD PTR -2780[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 284
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2780[rbp]
	test	eax, eax
	jne	.L398
	mov	edx, DWORD PTR -2788[rbp]
	mov	eax, DWORD PTR -2784[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 284
	mov	edi, eax
	call	runtime_assert
.L398:
	mov	DWORD PTR -2776[rbp], 0
	mov	DWORD PTR -2772[rbp], -128
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2776[rbp]
	mov	eax, DWORD PTR -2772[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L399
	mov	ecx, 1
.L399:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2768[rbp], eax
	mov	eax, DWORD PTR -2768[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 285
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2768[rbp]
	test	eax, eax
	jne	.L400
	mov	edx, DWORD PTR -2776[rbp]
	mov	eax, DWORD PTR -2772[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 285
	mov	edi, eax
	call	runtime_assert
.L400:
	mov	DWORD PTR -2764[rbp], -1
	mov	DWORD PTR -2760[rbp], -128
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2764[rbp]
	mov	eax, DWORD PTR -2760[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, al
	cmp	rax, rdx
	je	.L401
	mov	ecx, 1
.L401:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2756[rbp], eax
	mov	eax, DWORD PTR -2756[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 286
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2756[rbp]
	test	eax, eax
	jne	.L402
	mov	edx, DWORD PTR -2764[rbp]
	mov	eax, DWORD PTR -2760[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movsx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 286
	mov	edi, eax
	call	runtime_assert
.L402:
	mov	DWORD PTR -2752[rbp], 0
	mov	DWORD PTR -2748[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2752[rbp]
	mov	eax, DWORD PTR -2748[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L403
	mov	ecx, 1
.L403:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2744[rbp], eax
	mov	eax, DWORD PTR -2744[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 288
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2744[rbp]
	test	eax, eax
	jne	.L404
	mov	edx, DWORD PTR -2752[rbp]
	mov	eax, DWORD PTR -2748[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 288
	mov	edi, eax
	call	runtime_assert
.L404:
	mov	DWORD PTR -2740[rbp], 0
	mov	DWORD PTR -2736[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2740[rbp]
	mov	eax, DWORD PTR -2736[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L405
	mov	ecx, 1
.L405:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2732[rbp], eax
	mov	eax, DWORD PTR -2732[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 289
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2732[rbp]
	test	eax, eax
	jne	.L406
	mov	edx, DWORD PTR -2740[rbp]
	mov	eax, DWORD PTR -2736[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 289
	mov	edi, eax
	call	runtime_assert
.L406:
	mov	DWORD PTR -2728[rbp], 1
	mov	DWORD PTR -2724[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2728[rbp]
	mov	eax, DWORD PTR -2724[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L407
	mov	ecx, 1
.L407:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2720[rbp], eax
	mov	eax, DWORD PTR -2720[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 290
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2720[rbp]
	test	eax, eax
	jne	.L408
	mov	edx, DWORD PTR -2728[rbp]
	mov	eax, DWORD PTR -2724[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 290
	mov	edi, eax
	call	runtime_assert
.L408:
	mov	DWORD PTR -2716[rbp], 32767
	mov	DWORD PTR -2712[rbp], 32767
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2716[rbp]
	mov	eax, DWORD PTR -2712[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L409
	mov	ecx, 1
.L409:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2708[rbp], eax
	mov	eax, DWORD PTR -2708[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 291
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2708[rbp]
	test	eax, eax
	jne	.L410
	mov	edx, DWORD PTR -2716[rbp]
	mov	eax, DWORD PTR -2712[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 291
	mov	edi, eax
	call	runtime_assert
.L410:
	mov	DWORD PTR -2704[rbp], 0
	mov	DWORD PTR -2700[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2704[rbp]
	mov	eax, DWORD PTR -2700[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L411
	mov	ecx, 1
.L411:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2696[rbp], eax
	mov	eax, DWORD PTR -2696[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 292
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2696[rbp]
	test	eax, eax
	jne	.L412
	mov	edx, DWORD PTR -2704[rbp]
	mov	eax, DWORD PTR -2700[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 292
	mov	edi, eax
	call	runtime_assert
.L412:
	mov	DWORD PTR -2692[rbp], -1
	mov	DWORD PTR -2688[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2692[rbp]
	mov	eax, DWORD PTR -2688[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L413
	mov	ecx, 1
.L413:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2684[rbp], eax
	mov	eax, DWORD PTR -2684[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 293
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2684[rbp]
	test	eax, eax
	jne	.L414
	mov	edx, DWORD PTR -2692[rbp]
	mov	eax, DWORD PTR -2688[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 293
	mov	edi, eax
	call	runtime_assert
.L414:
	mov	DWORD PTR -2680[rbp], -32768
	mov	DWORD PTR -2676[rbp], -32768
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2680[rbp]
	mov	eax, DWORD PTR -2676[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movsx	rdx, ax
	cmp	rax, rdx
	je	.L415
	mov	ecx, 1
.L415:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2672[rbp], eax
	mov	eax, DWORD PTR -2672[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 294
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2672[rbp]
	test	eax, eax
	jne	.L416
	mov	edx, DWORD PTR -2680[rbp]
	mov	eax, DWORD PTR -2676[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	cwde
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 294
	mov	edi, eax
	call	runtime_assert
.L416:
	mov	DWORD PTR -2668[rbp], 0
	mov	DWORD PTR -2664[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2668[rbp]
	mov	eax, DWORD PTR -2664[rbp]
	mov	ecx, 0
	imul	eax, edx
	jno	.L417
	mov	ecx, 1
.L417:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2660[rbp], eax
	mov	eax, DWORD PTR -2660[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 296
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2660[rbp]
	test	eax, eax
	jne	.L419
	mov	edx, DWORD PTR -2668[rbp]
	mov	eax, DWORD PTR -2664[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 296
	mov	edi, eax
	call	runtime_assert
.L419:
	mov	DWORD PTR -2656[rbp], 0
	mov	DWORD PTR -2652[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2656[rbp]
	mov	eax, DWORD PTR -2652[rbp]
	mov	ecx, 0
	imul	eax, edx
	jno	.L420
	mov	ecx, 1
.L420:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2648[rbp], eax
	mov	eax, DWORD PTR -2648[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 297
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2648[rbp]
	test	eax, eax
	jne	.L422
	mov	edx, DWORD PTR -2656[rbp]
	mov	eax, DWORD PTR -2652[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 297
	mov	edi, eax
	call	runtime_assert
.L422:
	mov	DWORD PTR -2644[rbp], 1
	mov	DWORD PTR -2640[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2644[rbp]
	mov	eax, DWORD PTR -2640[rbp]
	mov	ecx, 0
	imul	eax, edx
	jno	.L423
	mov	ecx, 1
.L423:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2636[rbp], eax
	mov	eax, DWORD PTR -2636[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 298
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2636[rbp]
	test	eax, eax
	jne	.L425
	mov	edx, DWORD PTR -2644[rbp]
	mov	eax, DWORD PTR -2640[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 298
	mov	edi, eax
	call	runtime_assert
.L425:
	mov	DWORD PTR -2632[rbp], 2147483647
	mov	DWORD PTR -2628[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2632[rbp]
	mov	eax, DWORD PTR -2628[rbp]
	mov	ecx, 0
	imul	eax, edx
	jno	.L426
	mov	ecx, 1
.L426:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2624[rbp], eax
	mov	eax, DWORD PTR -2624[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 299
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2624[rbp]
	test	eax, eax
	jne	.L428
	mov	edx, DWORD PTR -2632[rbp]
	mov	eax, DWORD PTR -2628[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 299
	mov	edi, eax
	call	runtime_assert
.L428:
	mov	DWORD PTR -2620[rbp], 0
	mov	DWORD PTR -2616[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2620[rbp]
	mov	eax, DWORD PTR -2616[rbp]
	mov	ecx, 0
	imul	eax, edx
	jno	.L429
	mov	ecx, 1
.L429:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2612[rbp], eax
	mov	eax, DWORD PTR -2612[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 300
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2612[rbp]
	test	eax, eax
	jne	.L431
	mov	edx, DWORD PTR -2620[rbp]
	mov	eax, DWORD PTR -2616[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 300
	mov	edi, eax
	call	runtime_assert
.L431:
	mov	DWORD PTR -2608[rbp], -1
	mov	DWORD PTR -2604[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2608[rbp]
	mov	eax, DWORD PTR -2604[rbp]
	mov	ecx, 0
	imul	eax, edx
	jno	.L432
	mov	ecx, 1
.L432:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2600[rbp], eax
	mov	eax, DWORD PTR -2600[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 301
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2600[rbp]
	test	eax, eax
	jne	.L434
	mov	edx, DWORD PTR -2608[rbp]
	mov	eax, DWORD PTR -2604[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 301
	mov	edi, eax
	call	runtime_assert
.L434:
	mov	DWORD PTR -2596[rbp], -2147483648
	mov	DWORD PTR -2592[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2596[rbp]
	mov	eax, DWORD PTR -2592[rbp]
	mov	ecx, 0
	imul	eax, edx
	jno	.L435
	mov	ecx, 1
.L435:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2588[rbp], eax
	mov	eax, DWORD PTR -2588[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 302
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2588[rbp]
	test	eax, eax
	jne	.L437
	mov	edx, DWORD PTR -2596[rbp]
	mov	eax, DWORD PTR -2592[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 302
	mov	edi, eax
	call	runtime_assert
.L437:
	mov	DWORD PTR -2584[rbp], 0
	mov	DWORD PTR -2580[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2584[rbp]
	mov	eax, DWORD PTR -2580[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2576[rbp], eax
	mov	eax, DWORD PTR -2576[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 304
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2576[rbp]
	test	eax, eax
	jne	.L438
	mov	edx, DWORD PTR -2584[rbp]
	mov	eax, DWORD PTR -2580[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 304
	mov	edi, eax
	call	runtime_assert
.L438:
	mov	QWORD PTR -1008[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -1000[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -1008[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L439
	mov	ecx, 1
.L439:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2572[rbp], eax
	mov	eax, DWORD PTR -2572[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 305
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2572[rbp]
	test	eax, eax
	jne	.L441
	mov	rdx, QWORD PTR -1008[rbp]
	mov	rax, QWORD PTR -1000[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 305
	mov	edi, eax
	call	runtime_assert
.L441:
	mov	QWORD PTR -992[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -984[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -992[rbp]
	mov	rax, QWORD PTR -984[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L442
	mov	ecx, 1
.L442:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2568[rbp], eax
	mov	eax, DWORD PTR -2568[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 306
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2568[rbp]
	test	eax, eax
	jne	.L444
	mov	rdx, QWORD PTR -992[rbp]
	mov	rax, QWORD PTR -984[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 306
	mov	edi, eax
	call	runtime_assert
.L444:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -976[rbp], rax
	mov	QWORD PTR -968[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -976[rbp]
	mov	rax, QWORD PTR -968[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L445
	mov	ecx, 1
.L445:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2564[rbp], eax
	mov	eax, DWORD PTR -2564[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 307
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2564[rbp]
	test	eax, eax
	jne	.L447
	mov	rdx, QWORD PTR -976[rbp]
	mov	rax, QWORD PTR -968[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 307
	mov	edi, eax
	call	runtime_assert
.L447:
	mov	QWORD PTR -960[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -952[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -952[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L448
	mov	ecx, 1
.L448:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2560[rbp], eax
	mov	eax, DWORD PTR -2560[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 308
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2560[rbp]
	test	eax, eax
	jne	.L450
	mov	rdx, QWORD PTR -960[rbp]
	mov	rax, QWORD PTR -952[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 308
	mov	edi, eax
	call	runtime_assert
.L450:
	mov	QWORD PTR -944[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -936[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -944[rbp]
	mov	rax, QWORD PTR -936[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L451
	mov	ecx, 1
.L451:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2556[rbp], eax
	mov	eax, DWORD PTR -2556[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 309
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2556[rbp]
	test	eax, eax
	jne	.L453
	mov	rdx, QWORD PTR -944[rbp]
	mov	rax, QWORD PTR -936[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 309
	mov	edi, eax
	call	runtime_assert
.L453:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -928[rbp], rax
	mov	QWORD PTR -920[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR -920[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L454
	mov	ecx, 1
.L454:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2552[rbp], eax
	mov	eax, DWORD PTR -2552[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 310
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2552[rbp]
	test	eax, eax
	jne	.L456
	mov	rdx, QWORD PTR -928[rbp]
	mov	rax, QWORD PTR -920[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 310
	mov	edi, eax
	call	runtime_assert
.L456:
	mov	DWORD PTR -2548[rbp], 0
	mov	DWORD PTR -2544[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2548[rbp]
	mov	eax, DWORD PTR -2544[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2540[rbp], eax
	mov	eax, DWORD PTR -2540[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 312
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2540[rbp]
	test	eax, eax
	jne	.L457
	mov	edx, DWORD PTR -2548[rbp]
	mov	eax, DWORD PTR -2544[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 312
	mov	edi, eax
	call	runtime_assert
.L457:
	mov	QWORD PTR -912[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -904[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -904[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L458
	mov	ecx, 1
.L458:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2536[rbp], eax
	mov	eax, DWORD PTR -2536[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 313
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2536[rbp]
	test	eax, eax
	jne	.L460
	mov	rdx, QWORD PTR -912[rbp]
	mov	rax, QWORD PTR -904[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 313
	mov	edi, eax
	call	runtime_assert
.L460:
	mov	QWORD PTR -896[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -888[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -896[rbp]
	mov	rax, QWORD PTR -888[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L461
	mov	ecx, 1
.L461:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2532[rbp], eax
	mov	eax, DWORD PTR -2532[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 314
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2532[rbp]
	test	eax, eax
	jne	.L463
	mov	rdx, QWORD PTR -896[rbp]
	mov	rax, QWORD PTR -888[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 314
	mov	edi, eax
	call	runtime_assert
.L463:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -880[rbp], rax
	mov	QWORD PTR -872[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -880[rbp]
	mov	rax, QWORD PTR -872[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L464
	mov	ecx, 1
.L464:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2528[rbp], eax
	mov	eax, DWORD PTR -2528[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 315
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2528[rbp]
	test	eax, eax
	jne	.L466
	mov	rdx, QWORD PTR -880[rbp]
	mov	rax, QWORD PTR -872[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 315
	mov	edi, eax
	call	runtime_assert
.L466:
	mov	QWORD PTR -864[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -856[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -864[rbp]
	mov	rax, QWORD PTR -856[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L467
	mov	ecx, 1
.L467:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2524[rbp], eax
	mov	eax, DWORD PTR -2524[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 316
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2524[rbp]
	test	eax, eax
	jne	.L469
	mov	rdx, QWORD PTR -864[rbp]
	mov	rax, QWORD PTR -856[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 316
	mov	edi, eax
	call	runtime_assert
.L469:
	mov	QWORD PTR -848[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -840[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -848[rbp]
	mov	rax, QWORD PTR -840[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L470
	mov	ecx, 1
.L470:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2520[rbp], eax
	mov	eax, DWORD PTR -2520[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 317
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2520[rbp]
	test	eax, eax
	jne	.L472
	mov	rdx, QWORD PTR -848[rbp]
	mov	rax, QWORD PTR -840[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 317
	mov	edi, eax
	call	runtime_assert
.L472:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -832[rbp], rax
	mov	QWORD PTR -824[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -832[rbp]
	mov	rax, QWORD PTR -824[rbp]
	mov	ecx, 0
	imul	rax, rdx
	jno	.L473
	mov	ecx, 1
.L473:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2516[rbp], eax
	mov	eax, DWORD PTR -2516[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 318
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2516[rbp]
	test	eax, eax
	jne	.L475
	mov	rdx, QWORD PTR -832[rbp]
	mov	rax, QWORD PTR -824[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 318
	mov	edi, eax
	call	runtime_assert
.L475:
	mov	DWORD PTR -2512[rbp], 0
	mov	DWORD PTR -2508[rbp], 0
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2512[rbp]
	mov	eax, DWORD PTR -2508[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L476
	mov	ecx, 1
.L476:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2504[rbp], eax
	mov	eax, DWORD PTR -2504[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 320
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2504[rbp]
	test	eax, eax
	jne	.L477
	mov	edx, DWORD PTR -2512[rbp]
	mov	eax, DWORD PTR -2508[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 320
	mov	edi, eax
	call	runtime_assert
.L477:
	mov	DWORD PTR -2500[rbp], 0
	mov	DWORD PTR -2496[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2500[rbp]
	mov	eax, DWORD PTR -2496[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L478
	mov	ecx, 1
.L478:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2492[rbp], eax
	mov	eax, DWORD PTR -2492[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 321
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2492[rbp]
	test	eax, eax
	jne	.L479
	mov	edx, DWORD PTR -2500[rbp]
	mov	eax, DWORD PTR -2496[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 321
	mov	edi, eax
	call	runtime_assert
.L479:
	mov	DWORD PTR -2488[rbp], 1
	mov	DWORD PTR -2484[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2488[rbp]
	mov	eax, DWORD PTR -2484[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L480
	mov	ecx, 1
.L480:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2480[rbp], eax
	mov	eax, DWORD PTR -2480[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 322
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2480[rbp]
	test	eax, eax
	jne	.L481
	mov	edx, DWORD PTR -2488[rbp]
	mov	eax, DWORD PTR -2484[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 322
	mov	edi, eax
	call	runtime_assert
.L481:
	mov	DWORD PTR -2476[rbp], 255
	mov	DWORD PTR -2472[rbp], 255
	mov	BYTE PTR -16[rbp], 0
	mov	edx, DWORD PTR -2476[rbp]
	mov	eax, DWORD PTR -2472[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, al
	cmp	rax, rdx
	je	.L482
	mov	ecx, 1
.L482:
	mov	BYTE PTR -16[rbp], al
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2468[rbp], eax
	mov	eax, DWORD PTR -2468[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 323
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2468[rbp]
	test	eax, eax
	jne	.L483
	mov	edx, DWORD PTR -2476[rbp]
	mov	eax, DWORD PTR -2472[rbp]
	imul	edx, eax
	movzx	eax, BYTE PTR -16[rbp]
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 323
	mov	edi, eax
	call	runtime_assert
.L483:
	mov	DWORD PTR -2464[rbp], 0
	mov	DWORD PTR -2460[rbp], 0
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2464[rbp]
	mov	eax, DWORD PTR -2460[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L484
	mov	ecx, 1
.L484:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2456[rbp], eax
	mov	eax, DWORD PTR -2456[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 325
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2456[rbp]
	test	eax, eax
	jne	.L485
	mov	edx, DWORD PTR -2464[rbp]
	mov	eax, DWORD PTR -2460[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 325
	mov	edi, eax
	call	runtime_assert
.L485:
	mov	DWORD PTR -2452[rbp], 0
	mov	DWORD PTR -2448[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2452[rbp]
	mov	eax, DWORD PTR -2448[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L486
	mov	ecx, 1
.L486:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2444[rbp], eax
	mov	eax, DWORD PTR -2444[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 326
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2444[rbp]
	test	eax, eax
	jne	.L487
	mov	edx, DWORD PTR -2452[rbp]
	mov	eax, DWORD PTR -2448[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 326
	mov	edi, eax
	call	runtime_assert
.L487:
	mov	DWORD PTR -2440[rbp], 1
	mov	DWORD PTR -2436[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2440[rbp]
	mov	eax, DWORD PTR -2436[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L488
	mov	ecx, 1
.L488:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2432[rbp], eax
	mov	eax, DWORD PTR -2432[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 327
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2432[rbp]
	test	eax, eax
	jne	.L489
	mov	edx, DWORD PTR -2440[rbp]
	mov	eax, DWORD PTR -2436[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 327
	mov	edi, eax
	call	runtime_assert
.L489:
	mov	DWORD PTR -2428[rbp], 65535
	mov	DWORD PTR -2424[rbp], 65535
	mov	WORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2428[rbp]
	mov	eax, DWORD PTR -2424[rbp]
	mov	ecx, 0
	mov	edx, edx
	mov	eax, eax
	imul	rax, rdx
	movzx	edx, ax
	cmp	rax, rdx
	je	.L490
	mov	ecx, 1
.L490:
	mov	WORD PTR -16[rbp], ax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2420[rbp], eax
	mov	eax, DWORD PTR -2420[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 328
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2420[rbp]
	test	eax, eax
	jne	.L491
	mov	edx, DWORD PTR -2428[rbp]
	mov	eax, DWORD PTR -2424[rbp]
	imul	edx, eax
	movzx	eax, WORD PTR -16[rbp]
	movzx	eax, ax
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 328
	mov	edi, eax
	call	runtime_assert
.L491:
	mov	DWORD PTR -2416[rbp], 0
	mov	DWORD PTR -2412[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2416[rbp]
	mov	eax, DWORD PTR -2412[rbp]
	mov	ecx, 0
	movsx	rdx, edx
	cdqe
	imul	rax, rdx
	mov	edx, eax
	cmp	rax, rdx
	je	.L492
	mov	ecx, 1
.L492:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2408[rbp], eax
	mov	eax, DWORD PTR -2408[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 330
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2408[rbp]
	test	eax, eax
	jne	.L493
	mov	edx, DWORD PTR -2416[rbp]
	mov	eax, DWORD PTR -2412[rbp]
	imul	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 330
	mov	edi, eax
	call	runtime_assert
.L493:
	mov	DWORD PTR -2404[rbp], 0
	mov	DWORD PTR -2400[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2404[rbp]
	mov	edx, DWORD PTR -2400[rbp]
	mov	ecx, 0
	mul	edx
	jno	.L494
	mov	ecx, 1
.L494:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2396[rbp], eax
	mov	eax, DWORD PTR -2396[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 331
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2396[rbp]
	test	eax, eax
	jne	.L496
	mov	edx, DWORD PTR -2404[rbp]
	mov	eax, DWORD PTR -2400[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 331
	mov	edi, eax
	call	runtime_assert
.L496:
	mov	DWORD PTR -2392[rbp], 1
	mov	DWORD PTR -2388[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2392[rbp]
	mov	edx, DWORD PTR -2388[rbp]
	mov	ecx, 0
	mul	edx
	jno	.L497
	mov	ecx, 1
.L497:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2384[rbp], eax
	mov	eax, DWORD PTR -2384[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 332
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2384[rbp]
	test	eax, eax
	jne	.L499
	mov	edx, DWORD PTR -2392[rbp]
	mov	eax, DWORD PTR -2388[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 332
	mov	edi, eax
	call	runtime_assert
.L499:
	mov	DWORD PTR -2380[rbp], -1
	mov	DWORD PTR -2376[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2380[rbp]
	mov	edx, DWORD PTR -2376[rbp]
	mov	ecx, 0
	mul	edx
	jno	.L500
	mov	ecx, 1
.L500:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2372[rbp], eax
	mov	eax, DWORD PTR -2372[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 333
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2372[rbp]
	test	eax, eax
	jne	.L502
	mov	edx, DWORD PTR -2380[rbp]
	mov	eax, DWORD PTR -2376[rbp]
	imul	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 333
	mov	edi, eax
	call	runtime_assert
.L502:
	mov	DWORD PTR -2368[rbp], 0
	mov	DWORD PTR -2364[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2368[rbp]
	mov	edx, DWORD PTR -2364[rbp]
	cdqe
	movsx	rdx, edx
	mov	ecx, 0
	mov	rsi, rax
	and	rsi, rdx
	test	rsi, rsi
	jns	.L506
	neg	rax
	neg	rdx
	jmp	.L505
.L506:
	mov	rsi, rax
	xor	rsi, rdx
	test	rsi, rsi
	jns	.L505
	test	rax, rax
	je	.L505
	test	rdx, rdx
	je	.L505
	mov	ecx, 1
.L505:
	mul	rdx
	jno	.L503
	mov	ecx, 1
.L503:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2360[rbp], eax
	mov	eax, DWORD PTR -2360[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 335
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2360[rbp]
	test	eax, eax
	jne	.L507
	mov	edx, DWORD PTR -2368[rbp]
	mov	eax, DWORD PTR -2364[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 335
	mov	edi, eax
	call	runtime_assert
.L507:
	mov	QWORD PTR -816[rbp], 0
	mov	QWORD PTR -808[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -816[rbp]
	mov	rdx, QWORD PTR -808[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L508
	mov	ecx, 1
.L508:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2356[rbp], eax
	mov	eax, DWORD PTR -2356[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 336
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2356[rbp]
	test	eax, eax
	jne	.L510
	mov	rdx, QWORD PTR -816[rbp]
	mov	rax, QWORD PTR -808[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 336
	mov	edi, eax
	call	runtime_assert
.L510:
	mov	QWORD PTR -800[rbp], 1
	mov	QWORD PTR -792[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -800[rbp]
	mov	rdx, QWORD PTR -792[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L511
	mov	ecx, 1
.L511:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2352[rbp], eax
	mov	eax, DWORD PTR -2352[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 337
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2352[rbp]
	test	eax, eax
	jne	.L513
	mov	rdx, QWORD PTR -800[rbp]
	mov	rax, QWORD PTR -792[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 337
	mov	edi, eax
	call	runtime_assert
.L513:
	mov	QWORD PTR -784[rbp], -1
	mov	QWORD PTR -776[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -784[rbp]
	mov	rdx, QWORD PTR -776[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L514
	mov	ecx, 1
.L514:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2348[rbp], eax
	mov	eax, DWORD PTR -2348[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 338
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2348[rbp]
	test	eax, eax
	jne	.L516
	mov	rdx, QWORD PTR -784[rbp]
	mov	rax, QWORD PTR -776[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 338
	mov	edi, eax
	call	runtime_assert
.L516:
	mov	DWORD PTR -2344[rbp], 0
	mov	DWORD PTR -2340[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2344[rbp]
	mov	edx, DWORD PTR -2340[rbp]
	cdqe
	movsx	rdx, edx
	mov	ecx, 0
	mov	rsi, rax
	and	rsi, rdx
	test	rsi, rsi
	jns	.L520
	neg	rax
	neg	rdx
	jmp	.L519
.L520:
	mov	rsi, rax
	xor	rsi, rdx
	test	rsi, rsi
	jns	.L519
	test	rax, rax
	je	.L519
	test	rdx, rdx
	je	.L519
	mov	ecx, 1
.L519:
	mul	rdx
	jno	.L517
	mov	ecx, 1
.L517:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2336[rbp], eax
	mov	eax, DWORD PTR -2336[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 340
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2336[rbp]
	test	eax, eax
	jne	.L521
	mov	edx, DWORD PTR -2344[rbp]
	mov	eax, DWORD PTR -2340[rbp]
	imul	eax, edx
	movsx	rdx, eax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 340
	mov	edi, eax
	call	runtime_assert
.L521:
	mov	QWORD PTR -768[rbp], 0
	mov	QWORD PTR -760[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -768[rbp]
	mov	rdx, QWORD PTR -760[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L522
	mov	ecx, 1
.L522:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2332[rbp], eax
	mov	eax, DWORD PTR -2332[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 341
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2332[rbp]
	test	eax, eax
	jne	.L524
	mov	rdx, QWORD PTR -768[rbp]
	mov	rax, QWORD PTR -760[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 341
	mov	edi, eax
	call	runtime_assert
.L524:
	mov	QWORD PTR -752[rbp], 1
	mov	QWORD PTR -744[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -752[rbp]
	mov	rdx, QWORD PTR -744[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L525
	mov	ecx, 1
.L525:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2328[rbp], eax
	mov	eax, DWORD PTR -2328[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 342
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2328[rbp]
	test	eax, eax
	jne	.L527
	mov	rdx, QWORD PTR -752[rbp]
	mov	rax, QWORD PTR -744[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 342
	mov	edi, eax
	call	runtime_assert
.L527:
	mov	QWORD PTR -736[rbp], -1
	mov	QWORD PTR -728[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -736[rbp]
	mov	rdx, QWORD PTR -728[rbp]
	mov	ecx, 0
	mul	rdx
	jno	.L528
	mov	ecx, 1
.L528:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2324[rbp], eax
	mov	eax, DWORD PTR -2324[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 343
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2324[rbp]
	test	eax, eax
	jne	.L530
	mov	rdx, QWORD PTR -736[rbp]
	mov	rax, QWORD PTR -728[rbp]
	imul	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 343
	mov	edi, eax
	call	runtime_assert
.L530:
	mov	BYTE PTR -4304[rbp], 0
	mov	BYTE PTR -4303[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4304[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4303[rbp]
	movsx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2320[rbp], eax
	mov	eax, DWORD PTR -2320[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 356
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2320[rbp]
	test	eax, eax
	jne	.L531
	movzx	eax, BYTE PTR -4304[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4303[rbp]
	movsx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 356
	mov	edi, eax
	call	runtime_assert
.L531:
	mov	BYTE PTR -4302[rbp], 0
	mov	BYTE PTR -4301[rbp], 127
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4302[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4301[rbp]
	movsx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2316[rbp], eax
	mov	eax, DWORD PTR -2316[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 357
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2316[rbp]
	test	eax, eax
	jne	.L532
	movzx	eax, BYTE PTR -4302[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4301[rbp]
	movsx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 357
	mov	edi, eax
	call	runtime_assert
.L532:
	mov	BYTE PTR -4300[rbp], 1
	mov	BYTE PTR -4299[rbp], 127
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4300[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4299[rbp]
	movsx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2312[rbp], eax
	mov	eax, DWORD PTR -2312[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 358
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2312[rbp]
	test	eax, eax
	jne	.L533
	movzx	eax, BYTE PTR -4300[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4299[rbp]
	movsx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 358
	mov	edi, eax
	call	runtime_assert
.L533:
	mov	BYTE PTR -4298[rbp], 127
	mov	BYTE PTR -4297[rbp], 127
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4298[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4297[rbp]
	movsx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2308[rbp], eax
	mov	eax, DWORD PTR -2308[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 359
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2308[rbp]
	test	eax, eax
	jne	.L534
	movzx	eax, BYTE PTR -4298[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4297[rbp]
	movsx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 359
	mov	edi, eax
	call	runtime_assert
.L534:
	mov	BYTE PTR -4296[rbp], 0
	mov	BYTE PTR -4295[rbp], -128
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4296[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4295[rbp]
	movsx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2304[rbp], eax
	mov	eax, DWORD PTR -2304[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 360
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2304[rbp]
	test	eax, eax
	jne	.L535
	movzx	eax, BYTE PTR -4296[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4295[rbp]
	movsx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 360
	mov	edi, eax
	call	runtime_assert
.L535:
	mov	BYTE PTR -4294[rbp], -1
	mov	BYTE PTR -4293[rbp], -128
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4294[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4293[rbp]
	movsx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2300[rbp], eax
	mov	eax, DWORD PTR -2300[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 361
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2300[rbp]
	test	eax, eax
	jne	.L536
	movzx	eax, BYTE PTR -4294[rbp]
	movsx	edx, al
	movzx	eax, BYTE PTR -4293[rbp]
	movsx	eax, al
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 361
	mov	edi, eax
	call	runtime_assert
.L536:
	mov	WORD PTR -4264[rbp], 0
	mov	WORD PTR -4262[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4264[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4262[rbp]
	cwde
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2296[rbp], eax
	mov	eax, DWORD PTR -2296[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 363
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2296[rbp]
	test	eax, eax
	jne	.L537
	movzx	eax, WORD PTR -4264[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4262[rbp]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 363
	mov	edi, eax
	call	runtime_assert
.L537:
	mov	WORD PTR -4260[rbp], 0
	mov	WORD PTR -4258[rbp], 32767
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4260[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4258[rbp]
	cwde
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2292[rbp], eax
	mov	eax, DWORD PTR -2292[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 364
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2292[rbp]
	test	eax, eax
	jne	.L538
	movzx	eax, WORD PTR -4260[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4258[rbp]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 364
	mov	edi, eax
	call	runtime_assert
.L538:
	mov	WORD PTR -4256[rbp], 1
	mov	WORD PTR -4254[rbp], 32767
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4256[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4254[rbp]
	cwde
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2288[rbp], eax
	mov	eax, DWORD PTR -2288[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 365
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2288[rbp]
	test	eax, eax
	jne	.L539
	movzx	eax, WORD PTR -4256[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4254[rbp]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 365
	mov	edi, eax
	call	runtime_assert
.L539:
	mov	WORD PTR -4252[rbp], 32767
	mov	WORD PTR -4250[rbp], 32767
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4252[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4250[rbp]
	cwde
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2284[rbp], eax
	mov	eax, DWORD PTR -2284[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 366
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2284[rbp]
	test	eax, eax
	jne	.L540
	movzx	eax, WORD PTR -4252[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4250[rbp]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 366
	mov	edi, eax
	call	runtime_assert
.L540:
	mov	WORD PTR -4248[rbp], 0
	mov	WORD PTR -4246[rbp], -32768
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4248[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4246[rbp]
	cwde
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2280[rbp], eax
	mov	eax, DWORD PTR -2280[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 367
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2280[rbp]
	test	eax, eax
	jne	.L541
	movzx	eax, WORD PTR -4248[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4246[rbp]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 367
	mov	edi, eax
	call	runtime_assert
.L541:
	mov	WORD PTR -4244[rbp], -1
	mov	WORD PTR -4242[rbp], -32768
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4244[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4242[rbp]
	cwde
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2276[rbp], eax
	mov	eax, DWORD PTR -2276[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 368
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2276[rbp]
	test	eax, eax
	jne	.L542
	movzx	eax, WORD PTR -4244[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4242[rbp]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 368
	mov	edi, eax
	call	runtime_assert
.L542:
	mov	WORD PTR -4240[rbp], -32768
	mov	WORD PTR -4238[rbp], -32768
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4240[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4238[rbp]
	cwde
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2272[rbp], eax
	mov	eax, DWORD PTR -2272[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 369
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2272[rbp]
	test	eax, eax
	jne	.L543
	movzx	eax, WORD PTR -4240[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR -4238[rbp]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 369
	mov	edi, eax
	call	runtime_assert
.L543:
	mov	DWORD PTR -2268[rbp], 0
	mov	DWORD PTR -2264[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2268[rbp]
	mov	eax, DWORD PTR -2264[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L544
	mov	ecx, 1
.L544:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2260[rbp], eax
	mov	eax, DWORD PTR -2260[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 371
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2260[rbp]
	test	eax, eax
	jne	.L546
	mov	edx, DWORD PTR -2268[rbp]
	mov	eax, DWORD PTR -2264[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 371
	mov	edi, eax
	call	runtime_assert
.L546:
	mov	DWORD PTR -2256[rbp], 0
	mov	DWORD PTR -2252[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2256[rbp]
	mov	eax, DWORD PTR -2252[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L547
	mov	ecx, 1
.L547:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2248[rbp], eax
	mov	eax, DWORD PTR -2248[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 372
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2248[rbp]
	test	eax, eax
	jne	.L549
	mov	edx, DWORD PTR -2256[rbp]
	mov	eax, DWORD PTR -2252[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 372
	mov	edi, eax
	call	runtime_assert
.L549:
	mov	DWORD PTR -2244[rbp], 1
	mov	DWORD PTR -2240[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2244[rbp]
	mov	eax, DWORD PTR -2240[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L550
	mov	ecx, 1
.L550:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2236[rbp], eax
	mov	eax, DWORD PTR -2236[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 373
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2236[rbp]
	test	eax, eax
	jne	.L552
	mov	edx, DWORD PTR -2244[rbp]
	mov	eax, DWORD PTR -2240[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 373
	mov	edi, eax
	call	runtime_assert
.L552:
	mov	DWORD PTR -2232[rbp], 2147483647
	mov	DWORD PTR -2228[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2232[rbp]
	mov	eax, DWORD PTR -2228[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L553
	mov	ecx, 1
.L553:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2224[rbp], eax
	mov	eax, DWORD PTR -2224[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 374
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2224[rbp]
	test	eax, eax
	jne	.L555
	mov	edx, DWORD PTR -2232[rbp]
	mov	eax, DWORD PTR -2228[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 374
	mov	edi, eax
	call	runtime_assert
.L555:
	mov	DWORD PTR -2220[rbp], 0
	mov	DWORD PTR -2216[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2220[rbp]
	mov	eax, DWORD PTR -2216[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L556
	mov	ecx, 1
.L556:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2212[rbp], eax
	mov	eax, DWORD PTR -2212[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 375
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2212[rbp]
	test	eax, eax
	jne	.L558
	mov	edx, DWORD PTR -2220[rbp]
	mov	eax, DWORD PTR -2216[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 375
	mov	edi, eax
	call	runtime_assert
.L558:
	mov	DWORD PTR -2208[rbp], -1
	mov	DWORD PTR -2204[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2208[rbp]
	mov	eax, DWORD PTR -2204[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L559
	mov	ecx, 1
.L559:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2200[rbp], eax
	mov	eax, DWORD PTR -2200[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 376
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2200[rbp]
	test	eax, eax
	jne	.L561
	mov	edx, DWORD PTR -2208[rbp]
	mov	eax, DWORD PTR -2204[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 376
	mov	edi, eax
	call	runtime_assert
.L561:
	mov	DWORD PTR -2196[rbp], -2147483648
	mov	DWORD PTR -2192[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	edx, DWORD PTR -2196[rbp]
	mov	eax, DWORD PTR -2192[rbp]
	mov	ecx, 0
	add	eax, edx
	jno	.L562
	mov	ecx, 1
.L562:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2188[rbp], eax
	mov	eax, DWORD PTR -2188[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 377
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2188[rbp]
	test	eax, eax
	jne	.L564
	mov	edx, DWORD PTR -2196[rbp]
	mov	eax, DWORD PTR -2192[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 377
	mov	edi, eax
	call	runtime_assert
.L564:
	mov	QWORD PTR -720[rbp], 0
	mov	QWORD PTR -712[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -720[rbp]
	mov	rax, QWORD PTR -712[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L565
	mov	ecx, 1
.L565:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2184[rbp], eax
	mov	eax, DWORD PTR -2184[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 380
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2184[rbp]
	test	eax, eax
	jne	.L567
	mov	rdx, QWORD PTR -720[rbp]
	mov	rax, QWORD PTR -712[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 380
	mov	edi, eax
	call	runtime_assert
.L567:
	mov	QWORD PTR -704[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -696[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -704[rbp]
	mov	rax, QWORD PTR -696[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L568
	mov	ecx, 1
.L568:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2180[rbp], eax
	mov	eax, DWORD PTR -2180[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 381
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2180[rbp]
	test	eax, eax
	jne	.L570
	mov	rdx, QWORD PTR -704[rbp]
	mov	rax, QWORD PTR -696[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 381
	mov	edi, eax
	call	runtime_assert
.L570:
	mov	QWORD PTR -688[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -680[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -688[rbp]
	mov	rax, QWORD PTR -680[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L571
	mov	ecx, 1
.L571:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2176[rbp], eax
	mov	eax, DWORD PTR -2176[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 382
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2176[rbp]
	test	eax, eax
	jne	.L573
	mov	rdx, QWORD PTR -688[rbp]
	mov	rax, QWORD PTR -680[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 382
	mov	edi, eax
	call	runtime_assert
.L573:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -672[rbp], rax
	mov	QWORD PTR -664[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -672[rbp]
	mov	rax, QWORD PTR -664[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L574
	mov	ecx, 1
.L574:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2172[rbp], eax
	mov	eax, DWORD PTR -2172[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 383
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2172[rbp]
	test	eax, eax
	jne	.L576
	mov	rdx, QWORD PTR -672[rbp]
	mov	rax, QWORD PTR -664[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 383
	mov	edi, eax
	call	runtime_assert
.L576:
	mov	QWORD PTR -656[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -648[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -656[rbp]
	mov	rax, QWORD PTR -648[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L577
	mov	ecx, 1
.L577:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2168[rbp], eax
	mov	eax, DWORD PTR -2168[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 384
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2168[rbp]
	test	eax, eax
	jne	.L579
	mov	rdx, QWORD PTR -656[rbp]
	mov	rax, QWORD PTR -648[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 384
	mov	edi, eax
	call	runtime_assert
.L579:
	mov	QWORD PTR -640[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -632[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -640[rbp]
	mov	rax, QWORD PTR -632[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L580
	mov	ecx, 1
.L580:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2164[rbp], eax
	mov	eax, DWORD PTR -2164[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 385
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2164[rbp]
	test	eax, eax
	jne	.L582
	mov	rdx, QWORD PTR -640[rbp]
	mov	rax, QWORD PTR -632[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 385
	mov	edi, eax
	call	runtime_assert
.L582:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -624[rbp], rax
	mov	QWORD PTR -616[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -624[rbp]
	mov	rax, QWORD PTR -616[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L583
	mov	ecx, 1
.L583:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2160[rbp], eax
	mov	eax, DWORD PTR -2160[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 386
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2160[rbp]
	test	eax, eax
	jne	.L585
	mov	rdx, QWORD PTR -624[rbp]
	mov	rax, QWORD PTR -616[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 386
	mov	edi, eax
	call	runtime_assert
.L585:
	mov	QWORD PTR -608[rbp], 0
	mov	QWORD PTR -600[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -608[rbp]
	mov	rax, QWORD PTR -600[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L586
	mov	ecx, 1
.L586:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2156[rbp], eax
	mov	eax, DWORD PTR -2156[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 388
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2156[rbp]
	test	eax, eax
	jne	.L588
	mov	rdx, QWORD PTR -608[rbp]
	mov	rax, QWORD PTR -600[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 388
	mov	edi, eax
	call	runtime_assert
.L588:
	mov	QWORD PTR -592[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -584[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR -584[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L589
	mov	ecx, 1
.L589:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2152[rbp], eax
	mov	eax, DWORD PTR -2152[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 389
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2152[rbp]
	test	eax, eax
	jne	.L591
	mov	rdx, QWORD PTR -592[rbp]
	mov	rax, QWORD PTR -584[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 389
	mov	edi, eax
	call	runtime_assert
.L591:
	mov	QWORD PTR -576[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -568[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -576[rbp]
	mov	rax, QWORD PTR -568[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L592
	mov	ecx, 1
.L592:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2148[rbp], eax
	mov	eax, DWORD PTR -2148[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 390
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2148[rbp]
	test	eax, eax
	jne	.L594
	mov	rdx, QWORD PTR -576[rbp]
	mov	rax, QWORD PTR -568[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 390
	mov	edi, eax
	call	runtime_assert
.L594:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -560[rbp], rax
	mov	QWORD PTR -552[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -560[rbp]
	mov	rax, QWORD PTR -552[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L595
	mov	ecx, 1
.L595:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2144[rbp], eax
	mov	eax, DWORD PTR -2144[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 391
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2144[rbp]
	test	eax, eax
	jne	.L597
	mov	rdx, QWORD PTR -560[rbp]
	mov	rax, QWORD PTR -552[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 391
	mov	edi, eax
	call	runtime_assert
.L597:
	mov	QWORD PTR -544[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -536[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -544[rbp]
	mov	rax, QWORD PTR -536[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L598
	mov	ecx, 1
.L598:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2140[rbp], eax
	mov	eax, DWORD PTR -2140[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 392
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2140[rbp]
	test	eax, eax
	jne	.L600
	mov	rdx, QWORD PTR -544[rbp]
	mov	rax, QWORD PTR -536[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 392
	mov	edi, eax
	call	runtime_assert
.L600:
	mov	QWORD PTR -528[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -520[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -528[rbp]
	mov	rax, QWORD PTR -520[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L601
	mov	ecx, 1
.L601:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2136[rbp], eax
	mov	eax, DWORD PTR -2136[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 393
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2136[rbp]
	test	eax, eax
	jne	.L603
	mov	rdx, QWORD PTR -528[rbp]
	mov	rax, QWORD PTR -520[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 393
	mov	edi, eax
	call	runtime_assert
.L603:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -512[rbp], rax
	mov	QWORD PTR -504[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rdx, QWORD PTR -512[rbp]
	mov	rax, QWORD PTR -504[rbp]
	mov	ecx, 0
	add	rax, rdx
	jno	.L604
	mov	ecx, 1
.L604:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2132[rbp], eax
	mov	eax, DWORD PTR -2132[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 394
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2132[rbp]
	test	eax, eax
	jne	.L606
	mov	rdx, QWORD PTR -512[rbp]
	mov	rax, QWORD PTR -504[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 394
	mov	edi, eax
	call	runtime_assert
.L606:
	mov	BYTE PTR -4292[rbp], 0
	mov	BYTE PTR -4291[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4292[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4291[rbp]
	movzx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2128[rbp], eax
	mov	eax, DWORD PTR -2128[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 397
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2128[rbp]
	test	eax, eax
	jne	.L607
	movzx	eax, BYTE PTR -4292[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4291[rbp]
	movzx	eax, al
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 397
	mov	edi, eax
	call	runtime_assert
.L607:
	mov	BYTE PTR -4290[rbp], 0
	mov	BYTE PTR -4289[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4290[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4289[rbp]
	movzx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2124[rbp], eax
	mov	eax, DWORD PTR -2124[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 398
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2124[rbp]
	test	eax, eax
	jne	.L608
	movzx	eax, BYTE PTR -4290[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4289[rbp]
	movzx	eax, al
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 398
	mov	edi, eax
	call	runtime_assert
.L608:
	mov	BYTE PTR -4288[rbp], 1
	mov	BYTE PTR -4287[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4288[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4287[rbp]
	movzx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2120[rbp], eax
	mov	eax, DWORD PTR -2120[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 399
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2120[rbp]
	test	eax, eax
	jne	.L609
	movzx	eax, BYTE PTR -4288[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4287[rbp]
	movzx	eax, al
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 399
	mov	edi, eax
	call	runtime_assert
.L609:
	mov	BYTE PTR -4286[rbp], -1
	mov	BYTE PTR -4285[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4286[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4285[rbp]
	movzx	eax, al
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2116[rbp], eax
	mov	eax, DWORD PTR -2116[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 400
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2116[rbp]
	test	eax, eax
	jne	.L610
	movzx	eax, BYTE PTR -4286[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR -4285[rbp]
	movzx	eax, al
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 400
	mov	edi, eax
	call	runtime_assert
.L610:
	mov	WORD PTR -4236[rbp], 0
	mov	WORD PTR -4234[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4236[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4234[rbp]
	movzx	eax, ax
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2112[rbp], eax
	mov	eax, DWORD PTR -2112[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 402
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2112[rbp]
	test	eax, eax
	jne	.L611
	movzx	eax, WORD PTR -4236[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4234[rbp]
	movzx	eax, ax
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 402
	mov	edi, eax
	call	runtime_assert
.L611:
	mov	WORD PTR -4232[rbp], 0
	mov	WORD PTR -4230[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4232[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4230[rbp]
	movzx	eax, ax
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2108[rbp], eax
	mov	eax, DWORD PTR -2108[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 403
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2108[rbp]
	test	eax, eax
	jne	.L612
	movzx	eax, WORD PTR -4232[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4230[rbp]
	movzx	eax, ax
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 403
	mov	edi, eax
	call	runtime_assert
.L612:
	mov	WORD PTR -4228[rbp], 1
	mov	WORD PTR -4226[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4228[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4226[rbp]
	movzx	eax, ax
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2104[rbp], eax
	mov	eax, DWORD PTR -2104[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 404
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2104[rbp]
	test	eax, eax
	jne	.L613
	movzx	eax, WORD PTR -4228[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4226[rbp]
	movzx	eax, ax
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 404
	mov	edi, eax
	call	runtime_assert
.L613:
	mov	WORD PTR -4224[rbp], -1
	mov	WORD PTR -4222[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4224[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4222[rbp]
	movzx	eax, ax
	mov	ecx, 0
	add	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2100[rbp], eax
	mov	eax, DWORD PTR -2100[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 405
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2100[rbp]
	test	eax, eax
	jne	.L614
	movzx	eax, WORD PTR -4224[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR -4222[rbp]
	movzx	eax, ax
	add	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 405
	mov	edi, eax
	call	runtime_assert
.L614:
	mov	DWORD PTR -2096[rbp], 0
	mov	DWORD PTR -2092[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2096[rbp]
	mov	ecx, DWORD PTR -2092[rbp]
	mov	edx, 0
	add	eax, ecx
	jnc	.L615
	mov	edx, 1
.L615:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2088[rbp], eax
	mov	eax, DWORD PTR -2088[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 407
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2088[rbp]
	test	eax, eax
	jne	.L617
	mov	edx, DWORD PTR -2096[rbp]
	mov	eax, DWORD PTR -2092[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 407
	mov	edi, eax
	call	runtime_assert
.L617:
	mov	DWORD PTR -2084[rbp], 0
	mov	DWORD PTR -2080[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2084[rbp]
	mov	ecx, DWORD PTR -2080[rbp]
	mov	edx, 0
	add	eax, ecx
	jnc	.L618
	mov	edx, 1
.L618:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2076[rbp], eax
	mov	eax, DWORD PTR -2076[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 408
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2076[rbp]
	test	eax, eax
	jne	.L620
	mov	edx, DWORD PTR -2084[rbp]
	mov	eax, DWORD PTR -2080[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 408
	mov	edi, eax
	call	runtime_assert
.L620:
	mov	DWORD PTR -2072[rbp], 1
	mov	DWORD PTR -2068[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2072[rbp]
	mov	ecx, DWORD PTR -2068[rbp]
	mov	edx, 0
	add	eax, ecx
	jnc	.L621
	mov	edx, 1
.L621:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2064[rbp], eax
	mov	eax, DWORD PTR -2064[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 409
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2064[rbp]
	test	eax, eax
	jne	.L623
	mov	edx, DWORD PTR -2072[rbp]
	mov	eax, DWORD PTR -2068[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 409
	mov	edi, eax
	call	runtime_assert
.L623:
	mov	DWORD PTR -2060[rbp], -1
	mov	DWORD PTR -2056[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -2060[rbp]
	mov	ecx, DWORD PTR -2056[rbp]
	mov	edx, 0
	add	eax, ecx
	jnc	.L624
	mov	edx, 1
.L624:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2052[rbp], eax
	mov	eax, DWORD PTR -2052[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 410
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2052[rbp]
	test	eax, eax
	jne	.L626
	mov	edx, DWORD PTR -2060[rbp]
	mov	eax, DWORD PTR -2056[rbp]
	add	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 410
	mov	edi, eax
	call	runtime_assert
.L626:
	mov	QWORD PTR -496[rbp], 0
	mov	QWORD PTR -488[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -496[rbp]
	mov	rcx, QWORD PTR -488[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L627
	mov	edx, 1
.L627:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2048[rbp], eax
	mov	eax, DWORD PTR -2048[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 413
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2048[rbp]
	test	eax, eax
	jne	.L629
	mov	rdx, QWORD PTR -496[rbp]
	mov	rax, QWORD PTR -488[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 413
	mov	edi, eax
	call	runtime_assert
.L629:
	mov	QWORD PTR -480[rbp], 0
	mov	QWORD PTR -472[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -480[rbp]
	mov	rcx, QWORD PTR -472[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L630
	mov	edx, 1
.L630:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2044[rbp], eax
	mov	eax, DWORD PTR -2044[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 414
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2044[rbp]
	test	eax, eax
	jne	.L632
	mov	rdx, QWORD PTR -480[rbp]
	mov	rax, QWORD PTR -472[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 414
	mov	edi, eax
	call	runtime_assert
.L632:
	mov	QWORD PTR -464[rbp], 1
	mov	QWORD PTR -456[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -464[rbp]
	mov	rcx, QWORD PTR -456[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L633
	mov	edx, 1
.L633:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2040[rbp], eax
	mov	eax, DWORD PTR -2040[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 415
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2040[rbp]
	test	eax, eax
	jne	.L635
	mov	rdx, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR -456[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 415
	mov	edi, eax
	call	runtime_assert
.L635:
	mov	QWORD PTR -448[rbp], -1
	mov	QWORD PTR -440[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -448[rbp]
	mov	rcx, QWORD PTR -440[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L636
	mov	edx, 1
.L636:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2036[rbp], eax
	mov	eax, DWORD PTR -2036[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 416
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2036[rbp]
	test	eax, eax
	jne	.L638
	mov	rdx, QWORD PTR -448[rbp]
	mov	rax, QWORD PTR -440[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 416
	mov	edi, eax
	call	runtime_assert
.L638:
	mov	QWORD PTR -432[rbp], 0
	mov	QWORD PTR -424[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -432[rbp]
	mov	rcx, QWORD PTR -424[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L639
	mov	edx, 1
.L639:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2032[rbp], eax
	mov	eax, DWORD PTR -2032[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 418
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2032[rbp]
	test	eax, eax
	jne	.L641
	mov	rdx, QWORD PTR -432[rbp]
	mov	rax, QWORD PTR -424[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 418
	mov	edi, eax
	call	runtime_assert
.L641:
	mov	QWORD PTR -416[rbp], 0
	mov	QWORD PTR -408[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -416[rbp]
	mov	rcx, QWORD PTR -408[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L642
	mov	edx, 1
.L642:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2028[rbp], eax
	mov	eax, DWORD PTR -2028[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 419
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2028[rbp]
	test	eax, eax
	jne	.L644
	mov	rdx, QWORD PTR -416[rbp]
	mov	rax, QWORD PTR -408[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 419
	mov	edi, eax
	call	runtime_assert
.L644:
	mov	QWORD PTR -400[rbp], 1
	mov	QWORD PTR -392[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -400[rbp]
	mov	rcx, QWORD PTR -392[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L645
	mov	edx, 1
.L645:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2024[rbp], eax
	mov	eax, DWORD PTR -2024[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 420
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2024[rbp]
	test	eax, eax
	jne	.L647
	mov	rdx, QWORD PTR -400[rbp]
	mov	rax, QWORD PTR -392[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 420
	mov	edi, eax
	call	runtime_assert
.L647:
	mov	QWORD PTR -384[rbp], -1
	mov	QWORD PTR -376[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -384[rbp]
	mov	rcx, QWORD PTR -376[rbp]
	mov	edx, 0
	add	rax, rcx
	jnc	.L648
	mov	edx, 1
.L648:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2020[rbp], eax
	mov	eax, DWORD PTR -2020[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 421
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2020[rbp]
	test	eax, eax
	jne	.L650
	mov	rdx, QWORD PTR -384[rbp]
	mov	rax, QWORD PTR -376[rbp]
	add	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 421
	mov	edi, eax
	call	runtime_assert
.L650:
	mov	BYTE PTR -4284[rbp], 0
	mov	BYTE PTR -4283[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4284[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4283[rbp]
	movsx	edx, dl
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2016[rbp], eax
	mov	eax, DWORD PTR -2016[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 424
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2016[rbp]
	test	eax, eax
	jne	.L651
	movzx	eax, BYTE PTR -4284[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4283[rbp]
	movsx	ecx, dl
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 424
	mov	edi, eax
	call	runtime_assert
.L651:
	mov	BYTE PTR -4282[rbp], 0
	mov	BYTE PTR -4281[rbp], 127
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4282[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4281[rbp]
	movsx	edx, dl
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2012[rbp], eax
	mov	eax, DWORD PTR -2012[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 425
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2012[rbp]
	test	eax, eax
	jne	.L652
	movzx	eax, BYTE PTR -4282[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4281[rbp]
	movsx	ecx, dl
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 425
	mov	edi, eax
	call	runtime_assert
.L652:
	mov	BYTE PTR -4280[rbp], 1
	mov	BYTE PTR -4279[rbp], 127
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4280[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4279[rbp]
	movsx	edx, dl
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2008[rbp], eax
	mov	eax, DWORD PTR -2008[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 426
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2008[rbp]
	test	eax, eax
	jne	.L653
	movzx	eax, BYTE PTR -4280[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4279[rbp]
	movsx	ecx, dl
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 426
	mov	edi, eax
	call	runtime_assert
.L653:
	mov	BYTE PTR -4278[rbp], 127
	mov	BYTE PTR -4277[rbp], 127
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4278[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4277[rbp]
	movsx	edx, dl
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2004[rbp], eax
	mov	eax, DWORD PTR -2004[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 427
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2004[rbp]
	test	eax, eax
	jne	.L654
	movzx	eax, BYTE PTR -4278[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4277[rbp]
	movsx	ecx, dl
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 427
	mov	edi, eax
	call	runtime_assert
.L654:
	mov	BYTE PTR -4276[rbp], 0
	mov	BYTE PTR -4275[rbp], -128
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4276[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4275[rbp]
	movsx	edx, dl
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -2000[rbp], eax
	mov	eax, DWORD PTR -2000[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 428
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -2000[rbp]
	test	eax, eax
	jne	.L655
	movzx	eax, BYTE PTR -4276[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4275[rbp]
	movsx	ecx, dl
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 428
	mov	edi, eax
	call	runtime_assert
.L655:
	mov	BYTE PTR -4274[rbp], -1
	mov	BYTE PTR -4273[rbp], -128
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4274[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4273[rbp]
	movsx	edx, dl
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1996[rbp], eax
	mov	eax, DWORD PTR -1996[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 429
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1996[rbp]
	test	eax, eax
	jne	.L656
	movzx	eax, BYTE PTR -4274[rbp]
	movsx	eax, al
	movzx	edx, BYTE PTR -4273[rbp]
	movsx	ecx, dl
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 429
	mov	edi, eax
	call	runtime_assert
.L656:
	mov	WORD PTR -4220[rbp], 0
	mov	WORD PTR -4218[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4220[rbp]
	cwde
	movzx	edx, WORD PTR -4218[rbp]
	movsx	edx, dx
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1992[rbp], eax
	mov	eax, DWORD PTR -1992[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 431
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1992[rbp]
	test	eax, eax
	jne	.L657
	movzx	eax, WORD PTR -4220[rbp]
	cwde
	movzx	edx, WORD PTR -4218[rbp]
	movsx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 431
	mov	edi, eax
	call	runtime_assert
.L657:
	mov	WORD PTR -4216[rbp], 0
	mov	WORD PTR -4214[rbp], 32767
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4216[rbp]
	cwde
	movzx	edx, WORD PTR -4214[rbp]
	movsx	edx, dx
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1988[rbp], eax
	mov	eax, DWORD PTR -1988[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 432
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1988[rbp]
	test	eax, eax
	jne	.L658
	movzx	eax, WORD PTR -4216[rbp]
	cwde
	movzx	edx, WORD PTR -4214[rbp]
	movsx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 432
	mov	edi, eax
	call	runtime_assert
.L658:
	mov	WORD PTR -4212[rbp], 1
	mov	WORD PTR -4210[rbp], 32767
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4212[rbp]
	cwde
	movzx	edx, WORD PTR -4210[rbp]
	movsx	edx, dx
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1984[rbp], eax
	mov	eax, DWORD PTR -1984[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 433
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1984[rbp]
	test	eax, eax
	jne	.L659
	movzx	eax, WORD PTR -4212[rbp]
	cwde
	movzx	edx, WORD PTR -4210[rbp]
	movsx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 433
	mov	edi, eax
	call	runtime_assert
.L659:
	mov	WORD PTR -4208[rbp], 32767
	mov	WORD PTR -4206[rbp], 32767
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4208[rbp]
	cwde
	movzx	edx, WORD PTR -4206[rbp]
	movsx	edx, dx
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1980[rbp], eax
	mov	eax, DWORD PTR -1980[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 434
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1980[rbp]
	test	eax, eax
	jne	.L660
	movzx	eax, WORD PTR -4208[rbp]
	cwde
	movzx	edx, WORD PTR -4206[rbp]
	movsx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 434
	mov	edi, eax
	call	runtime_assert
.L660:
	mov	WORD PTR -4204[rbp], 0
	mov	WORD PTR -4202[rbp], -32768
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4204[rbp]
	cwde
	movzx	edx, WORD PTR -4202[rbp]
	movsx	edx, dx
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1976[rbp], eax
	mov	eax, DWORD PTR -1976[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 435
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1976[rbp]
	test	eax, eax
	jne	.L661
	movzx	eax, WORD PTR -4204[rbp]
	cwde
	movzx	edx, WORD PTR -4202[rbp]
	movsx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 435
	mov	edi, eax
	call	runtime_assert
.L661:
	mov	WORD PTR -4200[rbp], -1
	mov	WORD PTR -4198[rbp], -32768
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4200[rbp]
	cwde
	movzx	edx, WORD PTR -4198[rbp]
	movsx	edx, dx
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1972[rbp], eax
	mov	eax, DWORD PTR -1972[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 436
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1972[rbp]
	test	eax, eax
	jne	.L662
	movzx	eax, WORD PTR -4200[rbp]
	cwde
	movzx	edx, WORD PTR -4198[rbp]
	movsx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 436
	mov	edi, eax
	call	runtime_assert
.L662:
	mov	WORD PTR -4196[rbp], -32768
	mov	WORD PTR -4194[rbp], -32768
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4196[rbp]
	cwde
	movzx	edx, WORD PTR -4194[rbp]
	movsx	edx, dx
	mov	ecx, 0
	sub	eax, edx
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1968[rbp], eax
	mov	eax, DWORD PTR -1968[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 437
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1968[rbp]
	test	eax, eax
	jne	.L663
	movzx	eax, WORD PTR -4196[rbp]
	cwde
	movzx	edx, WORD PTR -4194[rbp]
	movsx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 437
	mov	edi, eax
	call	runtime_assert
.L663:
	mov	DWORD PTR -1964[rbp], 0
	mov	DWORD PTR -1960[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1964[rbp]
	mov	edx, DWORD PTR -1960[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L664
	mov	ecx, 1
.L664:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1956[rbp], eax
	mov	eax, DWORD PTR -1956[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 439
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1956[rbp]
	test	eax, eax
	jne	.L666
	mov	eax, DWORD PTR -1964[rbp]
	mov	ecx, DWORD PTR -1960[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 439
	mov	edi, eax
	call	runtime_assert
.L666:
	mov	DWORD PTR -1952[rbp], 0
	mov	DWORD PTR -1948[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1952[rbp]
	mov	edx, DWORD PTR -1948[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L667
	mov	ecx, 1
.L667:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1944[rbp], eax
	mov	eax, DWORD PTR -1944[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 440
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1944[rbp]
	test	eax, eax
	jne	.L669
	mov	eax, DWORD PTR -1952[rbp]
	mov	ecx, DWORD PTR -1948[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 440
	mov	edi, eax
	call	runtime_assert
.L669:
	mov	DWORD PTR -1940[rbp], 1
	mov	DWORD PTR -1936[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1940[rbp]
	mov	edx, DWORD PTR -1936[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L670
	mov	ecx, 1
.L670:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1932[rbp], eax
	mov	eax, DWORD PTR -1932[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 441
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1932[rbp]
	test	eax, eax
	jne	.L672
	mov	eax, DWORD PTR -1940[rbp]
	mov	ecx, DWORD PTR -1936[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 441
	mov	edi, eax
	call	runtime_assert
.L672:
	mov	DWORD PTR -1928[rbp], 2147483647
	mov	DWORD PTR -1924[rbp], 2147483647
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1928[rbp]
	mov	edx, DWORD PTR -1924[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L673
	mov	ecx, 1
.L673:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1920[rbp], eax
	mov	eax, DWORD PTR -1920[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 442
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1920[rbp]
	test	eax, eax
	jne	.L675
	mov	eax, DWORD PTR -1928[rbp]
	mov	ecx, DWORD PTR -1924[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 442
	mov	edi, eax
	call	runtime_assert
.L675:
	mov	DWORD PTR -1916[rbp], 0
	mov	DWORD PTR -1912[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1916[rbp]
	mov	edx, DWORD PTR -1912[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L676
	mov	ecx, 1
.L676:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1908[rbp], eax
	mov	eax, DWORD PTR -1908[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 443
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1908[rbp]
	test	eax, eax
	jne	.L678
	mov	eax, DWORD PTR -1916[rbp]
	mov	ecx, DWORD PTR -1912[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 443
	mov	edi, eax
	call	runtime_assert
.L678:
	mov	DWORD PTR -1904[rbp], -1
	mov	DWORD PTR -1900[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1904[rbp]
	mov	edx, DWORD PTR -1900[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L679
	mov	ecx, 1
.L679:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1896[rbp], eax
	mov	eax, DWORD PTR -1896[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 444
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1896[rbp]
	test	eax, eax
	jne	.L681
	mov	eax, DWORD PTR -1904[rbp]
	mov	ecx, DWORD PTR -1900[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 444
	mov	edi, eax
	call	runtime_assert
.L681:
	mov	DWORD PTR -1892[rbp], -2147483648
	mov	DWORD PTR -1888[rbp], -2147483648
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1892[rbp]
	mov	edx, DWORD PTR -1888[rbp]
	mov	ecx, 0
	sub	eax, edx
	jno	.L682
	mov	ecx, 1
.L682:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, ecx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1884[rbp], eax
	mov	eax, DWORD PTR -1884[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 445
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1884[rbp]
	test	eax, eax
	jne	.L684
	mov	eax, DWORD PTR -1892[rbp]
	mov	ecx, DWORD PTR -1888[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 445
	mov	edi, eax
	call	runtime_assert
.L684:
	mov	QWORD PTR -368[rbp], 0
	mov	QWORD PTR -360[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -368[rbp]
	mov	rdx, QWORD PTR -360[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L685
	mov	ecx, 1
.L685:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1880[rbp], eax
	mov	eax, DWORD PTR -1880[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 448
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1880[rbp]
	test	eax, eax
	jne	.L687
	mov	rax, QWORD PTR -368[rbp]
	mov	rcx, QWORD PTR -360[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 448
	mov	edi, eax
	call	runtime_assert
.L687:
	mov	QWORD PTR -352[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -344[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -352[rbp]
	mov	rdx, QWORD PTR -344[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L688
	mov	ecx, 1
.L688:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1876[rbp], eax
	mov	eax, DWORD PTR -1876[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 449
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1876[rbp]
	test	eax, eax
	jne	.L690
	mov	rax, QWORD PTR -352[rbp]
	mov	rcx, QWORD PTR -344[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 449
	mov	edi, eax
	call	runtime_assert
.L690:
	mov	QWORD PTR -336[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -328[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -336[rbp]
	mov	rdx, QWORD PTR -328[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L691
	mov	ecx, 1
.L691:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1872[rbp], eax
	mov	eax, DWORD PTR -1872[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 450
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1872[rbp]
	test	eax, eax
	jne	.L693
	mov	rax, QWORD PTR -336[rbp]
	mov	rcx, QWORD PTR -328[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 450
	mov	edi, eax
	call	runtime_assert
.L693:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -320[rbp], rax
	mov	QWORD PTR -312[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -320[rbp]
	mov	rdx, QWORD PTR -312[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L694
	mov	ecx, 1
.L694:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1868[rbp], eax
	mov	eax, DWORD PTR -1868[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 451
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1868[rbp]
	test	eax, eax
	jne	.L696
	mov	rax, QWORD PTR -320[rbp]
	mov	rcx, QWORD PTR -312[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 451
	mov	edi, eax
	call	runtime_assert
.L696:
	mov	QWORD PTR -304[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -296[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -304[rbp]
	mov	rdx, QWORD PTR -296[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L697
	mov	ecx, 1
.L697:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1864[rbp], eax
	mov	eax, DWORD PTR -1864[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 452
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1864[rbp]
	test	eax, eax
	jne	.L699
	mov	rax, QWORD PTR -304[rbp]
	mov	rcx, QWORD PTR -296[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 452
	mov	edi, eax
	call	runtime_assert
.L699:
	mov	QWORD PTR -288[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -280[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -288[rbp]
	mov	rdx, QWORD PTR -280[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L700
	mov	ecx, 1
.L700:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1860[rbp], eax
	mov	eax, DWORD PTR -1860[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 453
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1860[rbp]
	test	eax, eax
	jne	.L702
	mov	rax, QWORD PTR -288[rbp]
	mov	rcx, QWORD PTR -280[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 453
	mov	edi, eax
	call	runtime_assert
.L702:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -272[rbp], rax
	mov	QWORD PTR -264[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -272[rbp]
	mov	rdx, QWORD PTR -264[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L703
	mov	ecx, 1
.L703:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1856[rbp], eax
	mov	eax, DWORD PTR -1856[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 454
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1856[rbp]
	test	eax, eax
	jne	.L705
	mov	rax, QWORD PTR -272[rbp]
	mov	rcx, QWORD PTR -264[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 454
	mov	edi, eax
	call	runtime_assert
.L705:
	mov	QWORD PTR -256[rbp], 0
	mov	QWORD PTR -248[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -256[rbp]
	mov	rdx, QWORD PTR -248[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L706
	mov	ecx, 1
.L706:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1852[rbp], eax
	mov	eax, DWORD PTR -1852[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 457
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1852[rbp]
	test	eax, eax
	jne	.L708
	mov	rax, QWORD PTR -256[rbp]
	mov	rcx, QWORD PTR -248[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 457
	mov	edi, eax
	call	runtime_assert
.L708:
	mov	QWORD PTR -240[rbp], 0
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -232[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -240[rbp]
	mov	rdx, QWORD PTR -232[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L709
	mov	ecx, 1
.L709:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1848[rbp], eax
	mov	eax, DWORD PTR -1848[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 458
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1848[rbp]
	test	eax, eax
	jne	.L711
	mov	rax, QWORD PTR -240[rbp]
	mov	rcx, QWORD PTR -232[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 458
	mov	edi, eax
	call	runtime_assert
.L711:
	mov	QWORD PTR -224[rbp], 1
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -216[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -224[rbp]
	mov	rdx, QWORD PTR -216[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L712
	mov	ecx, 1
.L712:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1844[rbp], eax
	mov	eax, DWORD PTR -1844[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 459
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1844[rbp]
	test	eax, eax
	jne	.L714
	mov	rax, QWORD PTR -224[rbp]
	mov	rcx, QWORD PTR -216[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 459
	mov	edi, eax
	call	runtime_assert
.L714:
	movabs	rax, 9223372036854775807
	mov	QWORD PTR -208[rbp], rax
	mov	QWORD PTR -200[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -208[rbp]
	mov	rdx, QWORD PTR -200[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L715
	mov	ecx, 1
.L715:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1840[rbp], eax
	mov	eax, DWORD PTR -1840[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 460
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1840[rbp]
	test	eax, eax
	jne	.L717
	mov	rax, QWORD PTR -208[rbp]
	mov	rcx, QWORD PTR -200[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 460
	mov	edi, eax
	call	runtime_assert
.L717:
	mov	QWORD PTR -192[rbp], 0
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -184[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -192[rbp]
	mov	rdx, QWORD PTR -184[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L718
	mov	ecx, 1
.L718:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1836[rbp], eax
	mov	eax, DWORD PTR -1836[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 461
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1836[rbp]
	test	eax, eax
	jne	.L720
	mov	rax, QWORD PTR -192[rbp]
	mov	rcx, QWORD PTR -184[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 461
	mov	edi, eax
	call	runtime_assert
.L720:
	mov	QWORD PTR -176[rbp], -1
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -168[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -176[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L721
	mov	ecx, 1
.L721:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1832[rbp], eax
	mov	eax, DWORD PTR -1832[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 462
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1832[rbp]
	test	eax, eax
	jne	.L723
	mov	rax, QWORD PTR -176[rbp]
	mov	rcx, QWORD PTR -168[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 462
	mov	edi, eax
	call	runtime_assert
.L723:
	movabs	rax, -9223372036854775808
	mov	QWORD PTR -160[rbp], rax
	mov	QWORD PTR -152[rbp], rax
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -160[rbp]
	mov	rdx, QWORD PTR -152[rbp]
	mov	ecx, 0
	sub	rax, rdx
	jno	.L724
	mov	ecx, 1
.L724:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rcx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1828[rbp], eax
	mov	eax, DWORD PTR -1828[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 463
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1828[rbp]
	test	eax, eax
	jne	.L726
	mov	rax, QWORD PTR -160[rbp]
	mov	rcx, QWORD PTR -152[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 463
	mov	edi, eax
	call	runtime_assert
.L726:
	mov	BYTE PTR -4272[rbp], 0
	mov	BYTE PTR -4271[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4272[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4271[rbp]
	movzx	ecx, dl
	mov	edx, 0
	sub	eax, ecx
	jnb	.L727
	mov	edx, 1
.L727:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1824[rbp], eax
	mov	eax, DWORD PTR -1824[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 466
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1824[rbp]
	test	eax, eax
	jne	.L729
	movzx	eax, BYTE PTR -4272[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4271[rbp]
	movzx	edx, dl
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 466
	mov	edi, eax
	call	runtime_assert
.L729:
	mov	BYTE PTR -4270[rbp], 0
	mov	BYTE PTR -4269[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4270[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4269[rbp]
	movzx	ecx, dl
	mov	edx, 0
	sub	eax, ecx
	jnb	.L730
	mov	edx, 1
.L730:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1820[rbp], eax
	mov	eax, DWORD PTR -1820[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 467
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1820[rbp]
	test	eax, eax
	jne	.L732
	movzx	eax, BYTE PTR -4270[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4269[rbp]
	movzx	edx, dl
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 467
	mov	edi, eax
	call	runtime_assert
.L732:
	mov	BYTE PTR -4268[rbp], 1
	mov	BYTE PTR -4267[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4268[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4267[rbp]
	movzx	ecx, dl
	mov	edx, 0
	sub	eax, ecx
	jnb	.L733
	mov	edx, 1
.L733:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1816[rbp], eax
	mov	eax, DWORD PTR -1816[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 468
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1816[rbp]
	test	eax, eax
	jne	.L735
	movzx	eax, BYTE PTR -4268[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4267[rbp]
	movzx	edx, dl
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 468
	mov	edi, eax
	call	runtime_assert
.L735:
	mov	BYTE PTR -4266[rbp], -1
	mov	BYTE PTR -4265[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, BYTE PTR -4266[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4265[rbp]
	movzx	ecx, dl
	mov	edx, 0
	sub	eax, ecx
	jnb	.L736
	mov	edx, 1
.L736:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1812[rbp], eax
	mov	eax, DWORD PTR -1812[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 469
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1812[rbp]
	test	eax, eax
	jne	.L738
	movzx	eax, BYTE PTR -4266[rbp]
	movzx	eax, al
	movzx	edx, BYTE PTR -4265[rbp]
	movzx	edx, dl
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 469
	mov	edi, eax
	call	runtime_assert
.L738:
	mov	WORD PTR -4192[rbp], 0
	mov	WORD PTR -4190[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4192[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4190[rbp]
	movzx	ecx, dx
	mov	edx, 0
	sub	eax, ecx
	jnb	.L739
	mov	edx, 1
.L739:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1808[rbp], eax
	mov	eax, DWORD PTR -1808[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 471
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1808[rbp]
	test	eax, eax
	jne	.L741
	movzx	eax, WORD PTR -4192[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4190[rbp]
	movzx	edx, dx
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 471
	mov	edi, eax
	call	runtime_assert
.L741:
	mov	WORD PTR -4188[rbp], 0
	mov	WORD PTR -4186[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4188[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4186[rbp]
	movzx	ecx, dx
	mov	edx, 0
	sub	eax, ecx
	jnb	.L742
	mov	edx, 1
.L742:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1804[rbp], eax
	mov	eax, DWORD PTR -1804[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 472
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1804[rbp]
	test	eax, eax
	jne	.L744
	movzx	eax, WORD PTR -4188[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4186[rbp]
	movzx	edx, dx
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 472
	mov	edi, eax
	call	runtime_assert
.L744:
	mov	WORD PTR -4184[rbp], 1
	mov	WORD PTR -4182[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4184[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4182[rbp]
	movzx	ecx, dx
	mov	edx, 0
	sub	eax, ecx
	jnb	.L745
	mov	edx, 1
.L745:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1800[rbp], eax
	mov	eax, DWORD PTR -1800[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 473
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1800[rbp]
	test	eax, eax
	jne	.L747
	movzx	eax, WORD PTR -4184[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4182[rbp]
	movzx	edx, dx
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 473
	mov	edi, eax
	call	runtime_assert
.L747:
	mov	WORD PTR -4180[rbp], -1
	mov	WORD PTR -4178[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	movzx	eax, WORD PTR -4180[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4178[rbp]
	movzx	ecx, dx
	mov	edx, 0
	sub	eax, ecx
	jnb	.L748
	mov	edx, 1
.L748:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1796[rbp], eax
	mov	eax, DWORD PTR -1796[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 474
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1796[rbp]
	test	eax, eax
	jne	.L750
	movzx	eax, WORD PTR -4180[rbp]
	movzx	eax, ax
	movzx	edx, WORD PTR -4178[rbp]
	movzx	edx, dx
	sub	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 474
	mov	edi, eax
	call	runtime_assert
.L750:
	mov	DWORD PTR -1792[rbp], 0
	mov	DWORD PTR -1788[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1792[rbp]
	mov	ecx, DWORD PTR -1788[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L751
	mov	edx, 1
.L751:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1784[rbp], eax
	mov	eax, DWORD PTR -1784[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 476
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1784[rbp]
	test	eax, eax
	jne	.L753
	mov	eax, DWORD PTR -1792[rbp]
	mov	ecx, DWORD PTR -1788[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 476
	mov	edi, eax
	call	runtime_assert
.L753:
	mov	DWORD PTR -1780[rbp], 0
	mov	DWORD PTR -1776[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1780[rbp]
	mov	ecx, DWORD PTR -1776[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L754
	mov	edx, 1
.L754:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1772[rbp], eax
	mov	eax, DWORD PTR -1772[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 477
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1772[rbp]
	test	eax, eax
	jne	.L756
	mov	eax, DWORD PTR -1780[rbp]
	mov	ecx, DWORD PTR -1776[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 477
	mov	edi, eax
	call	runtime_assert
.L756:
	mov	DWORD PTR -1768[rbp], 1
	mov	DWORD PTR -1764[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1768[rbp]
	mov	ecx, DWORD PTR -1764[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L757
	mov	edx, 1
.L757:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1760[rbp], eax
	mov	eax, DWORD PTR -1760[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 478
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1760[rbp]
	test	eax, eax
	jne	.L759
	mov	eax, DWORD PTR -1768[rbp]
	mov	ecx, DWORD PTR -1764[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 478
	mov	edi, eax
	call	runtime_assert
.L759:
	mov	DWORD PTR -1756[rbp], -1
	mov	DWORD PTR -1752[rbp], -1
	mov	DWORD PTR -16[rbp], 0
	mov	eax, DWORD PTR -1756[rbp]
	mov	ecx, DWORD PTR -1752[rbp]
	mov	edx, 0
	sub	eax, ecx
	jnb	.L760
	mov	edx, 1
.L760:
	mov	DWORD PTR -16[rbp], eax
	mov	eax, edx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1748[rbp], eax
	mov	eax, DWORD PTR -1748[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 479
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1748[rbp]
	test	eax, eax
	jne	.L762
	mov	eax, DWORD PTR -1756[rbp]
	mov	ecx, DWORD PTR -1752[rbp]
	sub	eax, ecx
	mov	edx, eax
	mov	eax, DWORD PTR -16[rbp]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, 479
	mov	edi, eax
	call	runtime_assert
.L762:
	mov	QWORD PTR -144[rbp], 0
	mov	QWORD PTR -136[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -144[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L763
	mov	edx, 1
.L763:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1744[rbp], eax
	mov	eax, DWORD PTR -1744[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 482
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1744[rbp]
	test	eax, eax
	jne	.L765
	mov	rax, QWORD PTR -144[rbp]
	mov	rcx, QWORD PTR -136[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 482
	mov	edi, eax
	call	runtime_assert
.L765:
	mov	QWORD PTR -128[rbp], 0
	mov	QWORD PTR -120[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -128[rbp]
	mov	rcx, QWORD PTR -120[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L766
	mov	edx, 1
.L766:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1740[rbp], eax
	mov	eax, DWORD PTR -1740[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 483
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1740[rbp]
	test	eax, eax
	jne	.L768
	mov	rax, QWORD PTR -128[rbp]
	mov	rcx, QWORD PTR -120[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 483
	mov	edi, eax
	call	runtime_assert
.L768:
	mov	QWORD PTR -112[rbp], 1
	mov	QWORD PTR -104[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -112[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L769
	mov	edx, 1
.L769:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1736[rbp], eax
	mov	eax, DWORD PTR -1736[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 484
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1736[rbp]
	test	eax, eax
	jne	.L771
	mov	rax, QWORD PTR -112[rbp]
	mov	rcx, QWORD PTR -104[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 484
	mov	edi, eax
	call	runtime_assert
.L771:
	mov	QWORD PTR -96[rbp], -1
	mov	QWORD PTR -88[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -88[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L772
	mov	edx, 1
.L772:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1732[rbp], eax
	mov	eax, DWORD PTR -1732[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 485
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1732[rbp]
	test	eax, eax
	jne	.L774
	mov	rax, QWORD PTR -96[rbp]
	mov	rcx, QWORD PTR -88[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 485
	mov	edi, eax
	call	runtime_assert
.L774:
	mov	QWORD PTR -80[rbp], 0
	mov	QWORD PTR -72[rbp], 0
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L775
	mov	edx, 1
.L775:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1728[rbp], eax
	mov	eax, DWORD PTR -1728[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 488
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1728[rbp]
	test	eax, eax
	jne	.L777
	mov	rax, QWORD PTR -80[rbp]
	mov	rcx, QWORD PTR -72[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 488
	mov	edi, eax
	call	runtime_assert
.L777:
	mov	QWORD PTR -64[rbp], 0
	mov	QWORD PTR -56[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -56[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L778
	mov	edx, 1
.L778:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1724[rbp], eax
	mov	eax, DWORD PTR -1724[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 489
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1724[rbp]
	test	eax, eax
	jne	.L780
	mov	rax, QWORD PTR -64[rbp]
	mov	rcx, QWORD PTR -56[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 489
	mov	edi, eax
	call	runtime_assert
.L780:
	mov	QWORD PTR -48[rbp], 1
	mov	QWORD PTR -40[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L781
	mov	edx, 1
.L781:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1720[rbp], eax
	mov	eax, DWORD PTR -1720[rbp]
	cmp	eax, 1
	sete	al
	movzx	eax, al
	mov	esi, 490
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1720[rbp]
	test	eax, eax
	jne	.L783
	mov	rax, QWORD PTR -48[rbp]
	mov	rcx, QWORD PTR -40[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 490
	mov	edi, eax
	call	runtime_assert
.L783:
	mov	QWORD PTR -32[rbp], -1
	mov	QWORD PTR -24[rbp], -1
	mov	QWORD PTR -16[rbp], 0
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	mov	edx, 0
	sub	rax, rcx
	jnb	.L784
	mov	edx, 1
.L784:
	mov	QWORD PTR -16[rbp], rax
	mov	rax, rdx
	and	eax, 1
	movzx	eax, al
	mov	DWORD PTR -1716[rbp], eax
	mov	eax, DWORD PTR -1716[rbp]
	test	eax, eax
	sete	al
	movzx	eax, al
	mov	esi, 491
	mov	edi, eax
	call	runtime_assert
	mov	eax, DWORD PTR -1716[rbp]
	test	eax, eax
	jne	.L786
	mov	rax, QWORD PTR -32[rbp]
	mov	rcx, QWORD PTR -24[rbp]
	sub	rax, rcx
	mov	rdx, rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rdx, rax
	sete	al
	movzx	eax, al
	mov	esi, 491
	mov	edi, eax
	call	runtime_assert
.L786:
	mov	eax, 0
	mov	rdi, QWORD PTR -8[rbp]
	sub	rdi, QWORD PTR fs:40
	je	.L788
	call	__stack_chk_fail@PLT
.L788:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"443854.c"
	.text
	.comm	nfails,4,4
	.section	.rodata
	.align	2
.LC0:
	.ascii	"line %i: assertion failed\012\000"
	.text
	.align	2
	.global	runtime_assert
	.syntax unified
	.arm
	.fpu softvfp
	.type	runtime_assert, %function
runtime_assert:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	bne	.L3
	ldr	r1, [fp, #-12]
	ldr	r0, .L4
	bl	printf
	ldr	r3, .L4+4
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L4+4
	str	r3, [r2]
.L3:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L5:
	.align	2
.L4:
	.word	.LC0
	.word	nfails
	.size	runtime_assert, .-runtime_assert
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 4616
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, fp, lr}
	add	fp, sp, #28
	sub	sp, sp, #4608
	sub	sp, sp, #8
	ldr	r3, .L1040
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	mov	r3,#0
	mov	r3, #0
	str	r3, [fp, #-3780]
	mov	r3, #0
	str	r3, [fp, #-3776]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3780]
	ldr	r3, [fp, #-3776]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L7
	mov	r3, #1
	mov	r1, r3
.L7:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L9
	mov	r3, #1
	mov	r1, r3
.L9:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r1, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3772]
	ldr	r3, [fp, #-3772]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #107
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3772]
	cmp	r3, #0
	bne	.L10
	ldr	r2, [fp, #-3780]
	ldr	r3, [fp, #-3776]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #107
	mov	r0, r3
	bl	runtime_assert
.L10:
	mov	r3, #0
	str	r3, [fp, #-3768]
	mov	r3, #127
	str	r3, [fp, #-3764]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3768]
	ldr	r3, [fp, #-3764]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L11
	mov	r3, #1
	mov	r1, r3
.L11:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L13
	mov	r3, #1
	mov	r1, r3
.L13:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r1, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3760]
	ldr	r3, [fp, #-3760]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #108
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3760]
	cmp	r3, #0
	bne	.L14
	ldr	r2, [fp, #-3768]
	ldr	r3, [fp, #-3764]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #108
	mov	r0, r3
	bl	runtime_assert
.L14:
	mov	r3, #1
	str	r3, [fp, #-3756]
	mov	r3, #127
	str	r3, [fp, #-3752]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3756]
	ldr	r3, [fp, #-3752]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L15
	mov	r3, #1
	mov	r1, r3
.L15:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L17
	mov	r3, #1
	mov	r1, r3
.L17:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r1, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3748]
	ldr	r3, [fp, #-3748]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #109
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3748]
	cmp	r3, #0
	bne	.L18
	ldr	r2, [fp, #-3756]
	ldr	r3, [fp, #-3752]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #109
	mov	r0, r3
	bl	runtime_assert
.L18:
	mov	r3, #127
	str	r3, [fp, #-3744]
	mov	r3, #127
	str	r3, [fp, #-3740]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3744]
	ldr	r3, [fp, #-3740]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L19
	mov	r3, #1
	mov	r1, r3
.L19:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L21
	mov	r3, #1
	mov	r1, r3
.L21:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r1, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3736]
	ldr	r3, [fp, #-3736]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #110
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3736]
	cmp	r3, #0
	bne	.L22
	ldr	r2, [fp, #-3744]
	ldr	r3, [fp, #-3740]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #110
	mov	r0, r3
	bl	runtime_assert
.L22:
	mov	r3, #0
	str	r3, [fp, #-3732]
	mvn	r3, #127
	str	r3, [fp, #-3728]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3732]
	ldr	r3, [fp, #-3728]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L23
	mov	r3, #1
	mov	r1, r3
.L23:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L25
	mov	r3, #1
	mov	r1, r3
.L25:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r1, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3724]
	ldr	r3, [fp, #-3724]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #111
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3724]
	cmp	r3, #0
	bne	.L26
	ldr	r2, [fp, #-3732]
	ldr	r3, [fp, #-3728]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #111
	mov	r0, r3
	bl	runtime_assert
.L26:
	mvn	r3, #0
	str	r3, [fp, #-3720]
	mvn	r3, #127
	str	r3, [fp, #-3716]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3720]
	ldr	r3, [fp, #-3716]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L27
	mov	r3, #1
	mov	r1, r3
.L27:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L29
	mov	r3, #1
	mov	r1, r3
.L29:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r1, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3712]
	ldr	r3, [fp, #-3712]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #112
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3712]
	cmp	r3, #0
	bne	.L30
	ldr	r2, [fp, #-3720]
	ldr	r3, [fp, #-3716]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #112
	mov	r0, r3
	bl	runtime_assert
.L30:
	mov	r3, #256
	str	r3, [fp, #-3708]
	mov	r3, #0
	str	r3, [fp, #-3704]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3708]
	ldr	r1, [fp, #-3704]
	mov	r3, #0
	mov	r0, r3
	add	r2, r2, r1
	cmp	r2, #0
	blt	.L32
	cmp	r2, r1
	bcs	.L31
.L32:
	mov	r3, #1
	mov	r0, r3
.L31:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L33
	mov	r3, #1
	mov	r0, r3
.L33:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3700]
	ldr	r3, [fp, #-3700]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #115
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3700]
	cmp	r3, #0
	bne	.L34
	ldr	r2, [fp, #-3708]
	ldr	r3, [fp, #-3704]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #115
	mov	r0, r3
	bl	runtime_assert
.L34:
	mov	r3, #256
	str	r3, [fp, #-3696]
	mov	r3, #1
	str	r3, [fp, #-3692]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3696]
	ldr	r1, [fp, #-3692]
	mov	r3, #0
	mov	r0, r3
	add	r2, r2, r1
	cmp	r2, #0
	blt	.L36
	cmp	r2, r1
	bcs	.L35
.L36:
	mov	r3, #1
	mov	r0, r3
.L35:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L37
	mov	r3, #1
	mov	r0, r3
.L37:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3688]
	ldr	r3, [fp, #-3688]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #116
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3688]
	cmp	r3, #0
	bne	.L38
	ldr	r2, [fp, #-3696]
	ldr	r3, [fp, #-3692]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #116
	mov	r0, r3
	bl	runtime_assert
.L38:
	mov	r3, #1
	str	r3, [fp, #-3684]
	mov	r3, #256
	str	r3, [fp, #-3680]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3684]
	ldr	r1, [fp, #-3680]
	mov	r3, #0
	mov	r0, r3
	add	r2, r2, r1
	cmp	r2, #0
	blt	.L40
	cmp	r2, r1
	bcs	.L39
.L40:
	mov	r3, #1
	mov	r0, r3
.L39:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L41
	mov	r3, #1
	mov	r0, r3
.L41:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3676]
	ldr	r3, [fp, #-3676]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #117
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3676]
	cmp	r3, #0
	bne	.L42
	ldr	r2, [fp, #-3684]
	ldr	r3, [fp, #-3680]
	add	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #117
	mov	r0, r3
	bl	runtime_assert
.L42:
	mov	r3, #0
	str	r3, [fp, #-3672]
	mov	r3, #0
	str	r3, [fp, #-3668]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3672]
	ldr	r3, [fp, #-3668]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L43
	mov	r3, #1
	mov	r1, r3
.L43:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L45
	mov	r3, #1
	mov	r1, r3
.L45:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r1, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3664]
	ldr	r3, [fp, #-3664]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #119
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3664]
	cmp	r3, #0
	bne	.L46
	ldr	r2, [fp, #-3672]
	ldr	r3, [fp, #-3668]
	add	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #119
	mov	r0, r3
	bl	runtime_assert
.L46:
	mov	r3, #256
	str	r3, [fp, #-3660]
	mov	r3, #0
	str	r3, [fp, #-3656]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3660]
	ldr	r3, [fp, #-3656]
	mov	r1, #0
	adds	r2, r2, r3
	bcc	.L47
	mov	r3, #1
	mov	r1, r3
.L47:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L49
	mov	r3, #1
	mov	r1, r3
.L49:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r1, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3652]
	ldr	r3, [fp, #-3652]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #122
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3652]
	cmp	r3, #0
	bne	.L50
	ldr	r2, [fp, #-3660]
	ldr	r3, [fp, #-3656]
	add	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #122
	mov	r0, r3
	bl	runtime_assert
.L50:
	mov	r3, #256
	str	r3, [fp, #-3648]
	mov	r3, #1
	str	r3, [fp, #-3644]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3648]
	ldr	r3, [fp, #-3644]
	mov	r1, #0
	adds	r2, r2, r3
	bcc	.L51
	mov	r3, #1
	mov	r1, r3
.L51:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L53
	mov	r3, #1
	mov	r1, r3
.L53:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r1, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3640]
	ldr	r3, [fp, #-3640]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #123
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3640]
	cmp	r3, #0
	bne	.L54
	ldr	r2, [fp, #-3648]
	ldr	r3, [fp, #-3644]
	add	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #123
	mov	r0, r3
	bl	runtime_assert
.L54:
	mov	r3, #1
	str	r3, [fp, #-3636]
	mov	r3, #256
	str	r3, [fp, #-3632]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r2, [fp, #-3636]
	ldr	r3, [fp, #-3632]
	mov	r1, #0
	adds	r2, r2, r3
	bcc	.L55
	mov	r3, #1
	mov	r1, r3
.L55:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L57
	mov	r3, #1
	mov	r1, r3
.L57:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r1, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3628]
	ldr	r3, [fp, #-3628]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #124
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3628]
	cmp	r3, #0
	bne	.L58
	ldr	r2, [fp, #-3636]
	ldr	r3, [fp, #-3632]
	add	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #124
	mov	r0, r3
	bl	runtime_assert
.L58:
	mov	r3, #0
	str	r3, [fp, #-3624]
	mov	r3, #0
	str	r3, [fp, #-3620]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r2, [fp, #-3624]
	ldr	r3, [fp, #-3620]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L59
	mov	r3, #1
	mov	r1, r3	@ movhi
.L59:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L61
	mov	r3, #1
	mov	r1, r3	@ movhi
.L61:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r1, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3616]
	ldr	r3, [fp, #-3616]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #126
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3616]
	cmp	r3, #0
	bne	.L62
	ldr	r2, [fp, #-3624]
	ldr	r3, [fp, #-3620]
	add	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #126
	mov	r0, r3
	bl	runtime_assert
.L62:
	mov	r3, #0
	str	r3, [fp, #-3612]
	ldr	r3, .L1040+4
	str	r3, [fp, #-3608]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r2, [fp, #-3612]
	ldr	r3, [fp, #-3608]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L63
	mov	r3, #1
	mov	r1, r3	@ movhi
.L63:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L65
	mov	r3, #1
	mov	r1, r3	@ movhi
.L65:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r1, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3604]
	ldr	r3, [fp, #-3604]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #127
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3604]
	cmp	r3, #0
	bne	.L66
	ldr	r2, [fp, #-3612]
	ldr	r3, [fp, #-3608]
	add	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #127
	mov	r0, r3
	bl	runtime_assert
.L66:
	mov	r3, #1
	str	r3, [fp, #-3600]
	ldr	r3, .L1040+4
	str	r3, [fp, #-3596]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r2, [fp, #-3600]
	ldr	r3, [fp, #-3596]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L67
	mov	r3, #1
	mov	r1, r3	@ movhi
.L67:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L69
	mov	r3, #1
	mov	r1, r3	@ movhi
.L69:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r1, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3592]
	ldr	r3, [fp, #-3592]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #128
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3592]
	cmp	r3, #0
	bne	.L70
	ldr	r2, [fp, #-3600]
	ldr	r3, [fp, #-3596]
	add	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #128
	mov	r0, r3
	bl	runtime_assert
.L70:
	ldr	r3, .L1040+4
	str	r3, [fp, #-3588]
	ldr	r3, .L1040+4
	str	r3, [fp, #-3584]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r2, [fp, #-3588]
	ldr	r3, [fp, #-3584]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L71
	mov	r3, #1
	mov	r1, r3	@ movhi
.L71:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L73
	mov	r3, #1
	mov	r1, r3	@ movhi
.L73:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r1, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3580]
	ldr	r3, [fp, #-3580]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #129
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3580]
	cmp	r3, #0
	bne	.L74
	ldr	r2, [fp, #-3588]
	ldr	r3, [fp, #-3584]
	add	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #129
	mov	r0, r3
	bl	runtime_assert
.L74:
	mov	r3, #0
	str	r3, [fp, #-3576]
	ldr	r3, .L1040+8
	str	r3, [fp, #-3572]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r2, [fp, #-3576]
	ldr	r3, [fp, #-3572]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L75
	mov	r3, #1
	mov	r1, r3	@ movhi
.L75:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L77
	mov	r3, #1
	mov	r1, r3	@ movhi
.L77:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r1, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3568]
	ldr	r3, [fp, #-3568]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #130
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3568]
	cmp	r3, #0
	bne	.L78
	ldr	r2, [fp, #-3576]
	ldr	r3, [fp, #-3572]
	add	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #130
	mov	r0, r3
	bl	runtime_assert
.L78:
	mvn	r3, #0
	str	r3, [fp, #-3564]
	ldr	r3, .L1040+8
	str	r3, [fp, #-3560]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r2, [fp, #-3564]
	ldr	r3, [fp, #-3560]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L79
	mov	r3, #1
	mov	r1, r3	@ movhi
.L79:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L81
	mov	r3, #1
	mov	r1, r3	@ movhi
.L81:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r1, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3556]
	ldr	r3, [fp, #-3556]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #131
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3556]
	cmp	r3, #0
	bne	.L82
	ldr	r2, [fp, #-3564]
	ldr	r3, [fp, #-3560]
	add	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #131
	mov	r0, r3
	bl	runtime_assert
.L82:
	ldr	r3, .L1040+8
	str	r3, [fp, #-3552]
	ldr	r3, .L1040+8
	str	r3, [fp, #-3548]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r2, [fp, #-3552]
	ldr	r3, [fp, #-3548]
	mov	r1, #0
	adds	r2, r2, r3
	bvc	.L83
	mov	r3, #1
	mov	r1, r3	@ movhi
.L83:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L85
	mov	r3, #1
	mov	r1, r3	@ movhi
.L85:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r1, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3544]
	ldr	r3, [fp, #-3544]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #132
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3544]
	cmp	r3, #0
	bne	.L86
	ldr	r2, [fp, #-3552]
	ldr	r3, [fp, #-3548]
	add	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #132
	mov	r0, r3
	bl	runtime_assert
.L86:
	mov	r3, #0
	str	r3, [fp, #-3540]
	mov	r3, #0
	str	r3, [fp, #-3536]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3540]
	ldr	r3, [fp, #-3536]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L87
	mov	r1, #1
	b	.L1041
.L1042:
	.align	2
.L1040:
	.word	.LC1
	.word	32767
	.word	-32768
.L1041:
.L87:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3532]
	ldr	r3, [fp, #-3532]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #134
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3532]
	cmp	r3, #0
	bne	.L89
	ldr	r2, [fp, #-3540]
	ldr	r3, [fp, #-3536]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #134
	mov	r0, r3
	bl	runtime_assert
.L89:
	mov	r3, #0
	str	r3, [fp, #-3528]
	mvn	r3, #-2147483648
	str	r3, [fp, #-3524]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3528]
	ldr	r3, [fp, #-3524]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L90
	mov	r1, #1
.L90:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3520]
	ldr	r3, [fp, #-3520]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #135
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3520]
	cmp	r3, #0
	bne	.L92
	ldr	r2, [fp, #-3528]
	ldr	r3, [fp, #-3524]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #135
	mov	r0, r3
	bl	runtime_assert
.L92:
	mov	r3, #1
	str	r3, [fp, #-3516]
	mvn	r3, #-2147483648
	str	r3, [fp, #-3512]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3516]
	ldr	r3, [fp, #-3512]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L93
	mov	r1, #1
.L93:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3508]
	ldr	r3, [fp, #-3508]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #136
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3508]
	cmp	r3, #0
	bne	.L95
	ldr	r2, [fp, #-3516]
	ldr	r3, [fp, #-3512]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #136
	mov	r0, r3
	bl	runtime_assert
.L95:
	mvn	r3, #-2147483648
	str	r3, [fp, #-3504]
	mvn	r3, #-2147483648
	str	r3, [fp, #-3500]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3504]
	ldr	r3, [fp, #-3500]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L96
	mov	r1, #1
.L96:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3496]
	ldr	r3, [fp, #-3496]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #137
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3496]
	cmp	r3, #0
	bne	.L98
	ldr	r2, [fp, #-3504]
	ldr	r3, [fp, #-3500]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #137
	mov	r0, r3
	bl	runtime_assert
.L98:
	mov	r3, #0
	str	r3, [fp, #-3492]
	mov	r3, #-2147483648
	str	r3, [fp, #-3488]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3492]
	ldr	r3, [fp, #-3488]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L99
	mov	r1, #1
.L99:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3484]
	ldr	r3, [fp, #-3484]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #138
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3484]
	cmp	r3, #0
	bne	.L101
	ldr	r2, [fp, #-3492]
	ldr	r3, [fp, #-3488]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #138
	mov	r0, r3
	bl	runtime_assert
.L101:
	mvn	r3, #0
	str	r3, [fp, #-3480]
	mov	r3, #-2147483648
	str	r3, [fp, #-3476]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3480]
	ldr	r3, [fp, #-3476]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L102
	mov	r1, #1
.L102:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3472]
	ldr	r3, [fp, #-3472]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #139
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3472]
	cmp	r3, #0
	bne	.L104
	ldr	r2, [fp, #-3480]
	ldr	r3, [fp, #-3476]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #139
	mov	r0, r3
	bl	runtime_assert
.L104:
	mov	r3, #-2147483648
	str	r3, [fp, #-3468]
	mov	r3, #-2147483648
	str	r3, [fp, #-3464]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3468]
	ldr	r3, [fp, #-3464]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L105
	mov	r1, #1
.L105:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3460]
	ldr	r3, [fp, #-3460]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #140
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3460]
	cmp	r3, #0
	bne	.L107
	ldr	r2, [fp, #-3468]
	ldr	r3, [fp, #-3464]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #140
	mov	r0, r3
	bl	runtime_assert
.L107:
	mov	r3, #0
	str	r3, [fp, #-3456]
	mov	r3, #0
	str	r3, [fp, #-3452]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3456]
	ldr	r3, [fp, #-3452]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L108
	mov	r1, #1
.L108:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3448]
	ldr	r3, [fp, #-3448]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #142
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3448]
	cmp	r3, #0
	bne	.L110
	ldr	r2, [fp, #-3456]
	ldr	r3, [fp, #-3452]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #142
	mov	r0, r3
	bl	runtime_assert
.L110:
	mov	r3, #0
	str	r3, [fp, #-3444]
	mvn	r3, #-2147483648
	str	r3, [fp, #-3440]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3444]
	ldr	r3, [fp, #-3440]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L111
	mov	r1, #1
.L111:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3436]
	ldr	r3, [fp, #-3436]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #143
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3436]
	cmp	r3, #0
	bne	.L113
	ldr	r2, [fp, #-3444]
	ldr	r3, [fp, #-3440]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #143
	mov	r0, r3
	bl	runtime_assert
.L113:
	mov	r3, #1
	str	r3, [fp, #-3432]
	mvn	r3, #-2147483648
	str	r3, [fp, #-3428]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3432]
	ldr	r3, [fp, #-3428]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L114
	mov	r1, #1
.L114:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3424]
	ldr	r3, [fp, #-3424]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #144
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3424]
	cmp	r3, #0
	bne	.L116
	ldr	r2, [fp, #-3432]
	ldr	r3, [fp, #-3428]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #144
	mov	r0, r3
	bl	runtime_assert
.L116:
	mvn	r3, #-2147483648
	str	r3, [fp, #-3420]
	mvn	r3, #-2147483648
	str	r3, [fp, #-3416]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3420]
	ldr	r3, [fp, #-3416]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L117
	mov	r1, #1
.L117:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3412]
	ldr	r3, [fp, #-3412]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #145
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3412]
	cmp	r3, #0
	bne	.L119
	ldr	r2, [fp, #-3420]
	ldr	r3, [fp, #-3416]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #145
	mov	r0, r3
	bl	runtime_assert
.L119:
	mov	r3, #0
	str	r3, [fp, #-3408]
	mov	r3, #-2147483648
	str	r3, [fp, #-3404]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3408]
	ldr	r3, [fp, #-3404]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L120
	mov	r1, #1
.L120:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3400]
	ldr	r3, [fp, #-3400]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #146
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3400]
	cmp	r3, #0
	bne	.L122
	ldr	r2, [fp, #-3408]
	ldr	r3, [fp, #-3404]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #146
	mov	r0, r3
	bl	runtime_assert
.L122:
	mvn	r3, #0
	str	r3, [fp, #-3396]
	mov	r3, #-2147483648
	str	r3, [fp, #-3392]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3396]
	ldr	r3, [fp, #-3392]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L123
	mov	r1, #1
.L123:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3388]
	ldr	r3, [fp, #-3388]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #147
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3388]
	cmp	r3, #0
	bne	.L125
	ldr	r2, [fp, #-3396]
	ldr	r3, [fp, #-3392]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #147
	mov	r0, r3
	bl	runtime_assert
.L125:
	mov	r3, #-2147483648
	str	r3, [fp, #-3384]
	mov	r3, #-2147483648
	str	r3, [fp, #-3380]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3384]
	ldr	r3, [fp, #-3380]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L126
	mov	r1, #1
.L126:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3376]
	ldr	r3, [fp, #-3376]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #148
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3376]
	cmp	r3, #0
	bne	.L128
	ldr	r2, [fp, #-3384]
	ldr	r3, [fp, #-3380]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #148
	mov	r0, r3
	bl	runtime_assert
.L128:
	mov	r3, #0
	str	r3, [fp, #-3372]
	mov	r3, #0
	str	r3, [fp, #-3368]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3372]
	ldr	r3, [fp, #-3368]
	mov	r4, #0
	mov	r5, #0
	mov	r0, r2
	asr	r1, r0, #31
	mov	r2, r3
	asr	r3, r2, #31
	adds	r6, r0, r2
	adc	r7, r1, r3
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3364]
	ldr	r3, [fp, #-3364]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #150
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3364]
	cmp	r3, #0
	bne	.L129
	ldr	r2, [fp, #-3372]
	ldr	r3, [fp, #-3368]
	add	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #150
	mov	r0, r3
	bl	runtime_assert
.L129:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-892]
	str	r3, [fp, #-888]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-884]
	str	r3, [fp, #-880]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #892
	ldmia	r1, {r0-r1}
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L130
	mov	r4, #1
	mov	r5, #0
.L130:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3360]
	ldr	r3, [fp, #-3360]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #151
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3360]
	cmp	r3, #0
	bne	.L132
	sub	r1, fp, #892
	ldmia	r1, {r0-r1}
	sub	r3, fp, #884
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-4044]
	adc	r3, r1, r3
	str	r3, [fp, #-4040]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-4044]
	ldr	r1, [fp, #-4040]
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #151
	mov	r0, r3
	bl	runtime_assert
.L132:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-876]
	str	r3, [fp, #-872]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-868]
	str	r3, [fp, #-864]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #876
	ldmia	r1, {r0-r1}
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L133
	mov	r4, #1
	mov	r5, #0
.L133:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3356]
	ldr	r3, [fp, #-3356]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #152
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3356]
	cmp	r3, #0
	bne	.L135
	sub	r1, fp, #876
	ldmia	r1, {r0-r1}
	sub	r3, fp, #868
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-4052]
	adc	r3, r1, r3
	str	r3, [fp, #-4048]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-4052]
	ldr	r1, [fp, #-4048]
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #152
	mov	r0, r3
	bl	runtime_assert
.L135:
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-860]
	str	r3, [fp, #-856]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-852]
	str	r3, [fp, #-848]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #860
	ldmia	r1, {r0-r1}
	sub	r3, fp, #852
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L136
	mov	r4, #1
	mov	r5, #0
.L136:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3352]
	ldr	r3, [fp, #-3352]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #153
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3352]
	cmp	r3, #0
	bne	.L138
	sub	r1, fp, #860
	ldmia	r1, {r0-r1}
	sub	r3, fp, #852
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-4060]
	adc	r3, r1, r3
	str	r3, [fp, #-4056]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-4060]
	ldr	r1, [fp, #-4056]
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #153
	mov	r0, r3
	bl	runtime_assert
.L138:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-844]
	str	r3, [fp, #-840]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-836]
	str	r3, [fp, #-832]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #844
	ldmia	r1, {r0-r1}
	sub	r3, fp, #836
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L139
	mov	r4, #1
	mov	r5, #0
.L139:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3348]
	ldr	r3, [fp, #-3348]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #154
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3348]
	cmp	r3, #0
	bne	.L141
	sub	r1, fp, #844
	ldmia	r1, {r0-r1}
	sub	r3, fp, #836
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-4068]
	adc	r3, r1, r3
	str	r3, [fp, #-4064]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-4068]
	ldr	r1, [fp, #-4064]
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #154
	mov	r0, r3
	bl	runtime_assert
.L141:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-828]
	str	r3, [fp, #-824]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-820]
	str	r3, [fp, #-816]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #828
	ldmia	r1, {r0-r1}
	sub	r3, fp, #820
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L142
	mov	r4, #1
	mov	r5, #0
.L142:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3344]
	ldr	r3, [fp, #-3344]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #155
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3344]
	cmp	r3, #0
	bne	.L144
	sub	r1, fp, #828
	ldmia	r1, {r0-r1}
	sub	r3, fp, #820
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-4076]
	adc	r3, r1, r3
	str	r3, [fp, #-4072]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-4076]
	ldr	r1, [fp, #-4072]
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #155
	mov	r0, r3
	bl	runtime_assert
.L144:
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-812]
	str	r3, [fp, #-808]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-804]
	str	r3, [fp, #-800]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #812
	ldmia	r1, {r0-r1}
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L145
	mov	r4, #1
	mov	r5, #0
.L145:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3340]
	ldr	r3, [fp, #-3340]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #156
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3340]
	cmp	r3, #0
	bne	.L147
	sub	r1, fp, #812
	ldmia	r1, {r0-r1}
	sub	r3, fp, #804
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	str	ip, [fp, #-4084]
	adc	r3, r1, r3
	str	r3, [fp, #-4080]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-4084]
	ldr	r1, [fp, #-4080]
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #156
	mov	r0, r3
	bl	runtime_assert
.L147:
	mov	r3, #0
	str	r3, [fp, #-3336]
	mov	r3, #0
	str	r3, [fp, #-3332]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3336]
	ldr	r3, [fp, #-3332]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L148
	mov	r3, #1
	mov	r0, r3
.L148:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L150
	mov	r3, #1
	mov	r0, r3
.L150:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3328]
	ldr	r3, [fp, #-3328]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #159
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3328]
	cmp	r3, #0
	bne	.L151
	ldr	r2, [fp, #-3336]
	ldr	r3, [fp, #-3332]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #159
	mov	r0, r3
	bl	runtime_assert
.L151:
	mov	r3, #0
	str	r3, [fp, #-3324]
	mov	r3, #255
	str	r3, [fp, #-3320]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3324]
	ldr	r3, [fp, #-3320]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bcs	.L152
	mov	r3, #1
	mov	r0, r3
.L152:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L154
	mov	r3, #1
	mov	r0, r3
.L154:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3316]
	ldr	r3, [fp, #-3316]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #160
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3316]
	cmp	r3, #0
	bne	.L155
	ldr	r2, [fp, #-3324]
	ldr	r3, [fp, #-3320]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #160
	mov	r0, r3
	bl	runtime_assert
.L155:
	mov	r3, #1
	str	r3, [fp, #-3312]
	mov	r3, #255
	str	r3, [fp, #-3308]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3312]
	ldr	r3, [fp, #-3308]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bcs	.L156
	mov	r3, #1
	mov	r0, r3
.L156:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L158
	mov	r3, #1
	mov	r0, r3
.L158:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3304]
	ldr	r3, [fp, #-3304]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #161
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3304]
	cmp	r3, #0
	bne	.L159
	ldr	r2, [fp, #-3312]
	ldr	r3, [fp, #-3308]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #161
	mov	r0, r3
	bl	runtime_assert
.L159:
	mov	r3, #255
	str	r3, [fp, #-3300]
	mov	r3, #255
	str	r3, [fp, #-3296]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3300]
	ldr	r3, [fp, #-3296]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bcs	.L160
	mov	r3, #1
	mov	r0, r3
.L160:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L162
	mov	r3, #1
	mov	r0, r3
.L162:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3292]
	ldr	r3, [fp, #-3292]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #163
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3292]
	cmp	r3, #0
	bne	.L163
	ldr	r2, [fp, #-3300]
	ldr	r3, [fp, #-3296]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #163
	mov	r0, r3
	bl	runtime_assert
.L163:
	mov	r3, #0
	str	r3, [fp, #-3288]
	mov	r3, #0
	str	r3, [fp, #-3284]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3288]
	ldr	r3, [fp, #-3284]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L164
	mov	r3, #1
	mov	r0, r3	@ movhi
.L164:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L166
	mov	r3, #1
	mov	r0, r3	@ movhi
.L166:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3280]
	ldr	r3, [fp, #-3280]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #164
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3280]
	cmp	r3, #0
	bne	.L167
	ldr	r2, [fp, #-3288]
	ldr	r3, [fp, #-3284]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #164
	mov	r0, r3
	bl	runtime_assert
.L167:
	mov	r3, #0
	str	r3, [fp, #-3276]
	ldr	r3, .L1043
	str	r3, [fp, #-3272]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3276]
	ldr	r3, [fp, #-3272]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bcs	.L168
	mov	r3, #1
	mov	r0, r3	@ movhi
.L168:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L170
	mov	r3, #1
	mov	r0, r3	@ movhi
.L170:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3268]
	ldr	r3, [fp, #-3268]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #165
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3268]
	cmp	r3, #0
	bne	.L171
	ldr	r2, [fp, #-3276]
	ldr	r3, [fp, #-3272]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #165
	mov	r0, r3
	bl	runtime_assert
.L171:
	mov	r3, #1
	str	r3, [fp, #-3264]
	ldr	r3, .L1043
	str	r3, [fp, #-3260]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3264]
	ldr	r3, [fp, #-3260]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bcs	.L172
	mov	r3, #1
	mov	r0, r3	@ movhi
.L172:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L174
	mov	r3, #1
	mov	r0, r3	@ movhi
.L174:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3256]
	ldr	r3, [fp, #-3256]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #166
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3256]
	cmp	r3, #0
	bne	.L175
	ldr	r2, [fp, #-3264]
	ldr	r3, [fp, #-3260]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #166
	mov	r0, r3
	bl	runtime_assert
.L175:
	ldr	r3, .L1043
	str	r3, [fp, #-3252]
	ldr	r3, .L1043
	str	r3, [fp, #-3248]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3252]
	ldr	r3, [fp, #-3248]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bcs	.L176
	mov	r3, #1
	mov	r0, r3	@ movhi
.L176:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L178
	mov	r3, #1
	mov	r0, r3	@ movhi
.L178:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3244]
	ldr	r3, [fp, #-3244]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #167
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3244]
	cmp	r3, #0
	bne	.L179
	ldr	r2, [fp, #-3252]
	ldr	r3, [fp, #-3248]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #167
	mov	r0, r3
	bl	runtime_assert
.L179:
	mov	r3, #0
	str	r3, [fp, #-3240]
	mov	r3, #0
	str	r3, [fp, #-3236]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3240]
	ldr	r3, [fp, #-3236]
	mov	r0, #0
	sub	r1, r2, r3
	cmp	r3, #0
	bge	.L182
	and	r3, r2, r1
	cmp	r3, #0
	bge	.L180
	b	.L181
.L182:
	orr	r3, r2, r1
	cmp	r3, #0
	bge	.L180
.L181:
	mov	r0, #1
.L180:
	mov	r3, r1
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3232]
	ldr	r3, [fp, #-3232]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #169
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3232]
	cmp	r3, #0
	bne	.L183
	ldr	r2, [fp, #-3240]
	ldr	r3, [fp, #-3236]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #169
	mov	r0, r3
	bl	runtime_assert
.L183:
	mov	r3, #0
	str	r3, [fp, #-3228]
	mvn	r3, #0
	str	r3, [fp, #-3224]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3228]
	ldr	r3, [fp, #-3224]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L184
	mov	r1, #1
.L184:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3220]
	ldr	r3, [fp, #-3220]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #170
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3220]
	cmp	r3, #0
	bne	.L186
	ldr	r2, [fp, #-3228]
	ldr	r3, [fp, #-3224]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #170
	mov	r0, r3
	bl	runtime_assert
.L186:
	mov	r3, #1
	str	r3, [fp, #-3216]
	mvn	r3, #0
	str	r3, [fp, #-3212]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3216]
	ldr	r3, [fp, #-3212]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L187
	mov	r1, #1
.L187:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3208]
	ldr	r3, [fp, #-3208]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #171
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3208]
	cmp	r3, #0
	bne	.L189
	ldr	r2, [fp, #-3216]
	ldr	r3, [fp, #-3212]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #171
	mov	r0, r3
	bl	runtime_assert
.L189:
	mvn	r3, #0
	str	r3, [fp, #-3204]
	mvn	r3, #0
	str	r3, [fp, #-3200]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3204]
	ldr	r3, [fp, #-3200]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L190
	mov	r1, #1
.L190:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3196]
	ldr	r3, [fp, #-3196]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #172
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3196]
	cmp	r3, #0
	bne	.L192
	ldr	r2, [fp, #-3204]
	ldr	r3, [fp, #-3200]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #172
	mov	r0, r3
	bl	runtime_assert
.L192:
	mov	r3, #0
	str	r3, [fp, #-3192]
	mov	r3, #0
	str	r3, [fp, #-3188]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3192]
	ldr	r3, [fp, #-3188]
	mov	r0, #0
	sub	r1, r2, r3
	cmp	r3, #0
	bge	.L195
	and	r3, r2, r1
	cmp	r3, #0
	bge	.L193
	b	.L194
.L195:
	orr	r3, r2, r1
	cmp	r3, #0
	bge	.L193
.L194:
	mov	r0, #1
.L193:
	mov	r3, r1
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3184]
	ldr	r3, [fp, #-3184]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #174
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3184]
	cmp	r3, #0
	bne	.L196
	ldr	r2, [fp, #-3192]
	ldr	r3, [fp, #-3188]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #174
	mov	r0, r3
	bl	runtime_assert
.L196:
	mov	r3, #0
	str	r3, [fp, #-3180]
	mvn	r3, #0
	str	r3, [fp, #-3176]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3180]
	ldr	r3, [fp, #-3176]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L197
	mov	r1, #1
.L197:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3172]
	ldr	r3, [fp, #-3172]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #175
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3172]
	cmp	r3, #0
	bne	.L199
	ldr	r2, [fp, #-3180]
	ldr	r3, [fp, #-3176]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #175
	mov	r0, r3
	bl	runtime_assert
.L199:
	mov	r3, #1
	str	r3, [fp, #-3168]
	mvn	r3, #0
	str	r3, [fp, #-3164]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3168]
	ldr	r3, [fp, #-3164]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L200
	mov	r1, #1
.L200:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3160]
	ldr	r3, [fp, #-3160]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #176
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3160]
	cmp	r3, #0
	bne	.L202
	ldr	r2, [fp, #-3168]
	ldr	r3, [fp, #-3164]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #176
	mov	r0, r3
	bl	runtime_assert
.L202:
	mvn	r3, #0
	str	r3, [fp, #-3156]
	mvn	r3, #0
	str	r3, [fp, #-3152]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-3156]
	ldr	r3, [fp, #-3152]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L203
	mov	r1, #1
.L203:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3148]
	ldr	r3, [fp, #-3148]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #177
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3148]
	cmp	r3, #0
	bne	.L205
	ldr	r2, [fp, #-3156]
	ldr	r3, [fp, #-3152]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #177
	mov	r0, r3
	bl	runtime_assert
.L205:
	mov	r3, #0
	str	r3, [fp, #-3144]
	mov	r3, #0
	str	r3, [fp, #-3140]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3144]
	ldr	r3, [fp, #-3140]
	mov	r0, r2
	asr	r1, r0, #31
	mov	r2, r3
	asr	r3, r2, #31
	mov	r4, #0
	mov	r5, #0
	subs	r8, r0, r2
	sbc	r9, r1, r3
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L208
	and	r3, r0, r8
	sub	r2, fp, #4352
	sub	r2, r2, #12
	str	r3, [r2]
	and	r3, r1, r9
	sub	r2, fp, #4352
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #4352
	sub	r3, r3, #12
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L206
	b	.L207
.L1044:
	.align	2
.L1043:
	.word	65535
	.word	32767
	.word	-32768
.L208:
	orr	r3, r0, r8
	sub	r2, fp, #4352
	sub	r2, r2, #20
	str	r3, [r2]
	orr	r3, r1, r9
	sub	r2, fp, #4352
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #4352
	sub	r3, r3, #20
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L206
.L207:
	mov	r4, #1
	mov	r5, #0
.L206:
	mov	r2, r8
	mov	r3, r9
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3136]
	ldr	r3, [fp, #-3136]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #179
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3136]
	cmp	r3, #0
	bne	.L209
	ldr	r2, [fp, #-3144]
	ldr	r3, [fp, #-3140]
	sub	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #179
	mov	r0, r3
	bl	runtime_assert
.L209:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-796]
	str	r3, [fp, #-792]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-788]
	str	r3, [fp, #-784]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #796
	ldmia	r1, {r0-r1}
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L210
	mov	r4, #1
	mov	r5, #0
.L210:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3132]
	ldr	r3, [fp, #-3132]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #180
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3132]
	cmp	r3, #0
	bne	.L212
	sub	r1, fp, #796
	ldmia	r1, {r0-r1}
	sub	r3, fp, #788
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	str	ip, [fp, #-4092]
	sbc	r3, r1, r3
	str	r3, [fp, #-4088]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	ldr	r0, [fp, #-4092]
	ldr	r1, [fp, #-4088]
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #180
	mov	r0, r3
	bl	runtime_assert
.L212:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-780]
	str	r3, [fp, #-776]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-772]
	str	r3, [fp, #-768]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #780
	ldmia	r1, {r0-r1}
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L213
	mov	r4, #1
	mov	r5, #0
.L213:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3128]
	ldr	r3, [fp, #-3128]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #181
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3128]
	cmp	r3, #0
	bne	.L215
	sub	r1, fp, #780
	ldmia	r1, {r0-r1}
	sub	r3, fp, #772
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #4
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #4
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #181
	mov	r0, r3
	bl	runtime_assert
.L215:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-764]
	str	r3, [fp, #-760]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-756]
	str	r3, [fp, #-752]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #764
	ldmia	r1, {r0-r1}
	sub	r3, fp, #756
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L216
	mov	r4, #1
	mov	r5, #0
.L216:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3124]
	ldr	r3, [fp, #-3124]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #182
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3124]
	cmp	r3, #0
	bne	.L218
	sub	r1, fp, #764
	ldmia	r1, {r0-r1}
	sub	r3, fp, #756
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #12
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #12
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #182
	mov	r0, r3
	bl	runtime_assert
.L218:
	mov	r3, #0
	str	r3, [fp, #-3120]
	mov	r3, #0
	str	r3, [fp, #-3116]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3120]
	ldr	r3, [fp, #-3116]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L219
	mov	r3, #1
	mov	r0, r3
.L219:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L221
	mov	r3, #1
	mov	r0, r3
.L221:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3112]
	ldr	r3, [fp, #-3112]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #184
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3112]
	cmp	r3, #0
	bne	.L222
	ldr	r2, [fp, #-3120]
	ldr	r3, [fp, #-3116]
	sub	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #184
	mov	r0, r3
	bl	runtime_assert
.L222:
	mov	r3, #0
	str	r3, [fp, #-3108]
	mov	r3, #127
	str	r3, [fp, #-3104]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3108]
	ldr	r3, [fp, #-3104]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L223
	mov	r3, #1
	mov	r0, r3
.L223:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L225
	mov	r3, #1
	mov	r0, r3
.L225:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3100]
	ldr	r3, [fp, #-3100]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #185
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3100]
	cmp	r3, #0
	bne	.L226
	ldr	r2, [fp, #-3108]
	ldr	r3, [fp, #-3104]
	sub	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #185
	mov	r0, r3
	bl	runtime_assert
.L226:
	mov	r3, #1
	str	r3, [fp, #-3096]
	mov	r3, #127
	str	r3, [fp, #-3092]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3096]
	ldr	r3, [fp, #-3092]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L227
	mov	r3, #1
	mov	r0, r3
.L227:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L229
	mov	r3, #1
	mov	r0, r3
.L229:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3088]
	ldr	r3, [fp, #-3088]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #186
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3088]
	cmp	r3, #0
	bne	.L230
	ldr	r2, [fp, #-3096]
	ldr	r3, [fp, #-3092]
	sub	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #186
	mov	r0, r3
	bl	runtime_assert
.L230:
	mov	r3, #127
	str	r3, [fp, #-3084]
	mov	r3, #127
	str	r3, [fp, #-3080]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3084]
	ldr	r3, [fp, #-3080]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L231
	mov	r3, #1
	mov	r0, r3
.L231:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L233
	mov	r3, #1
	mov	r0, r3
.L233:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3076]
	ldr	r3, [fp, #-3076]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #187
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3076]
	cmp	r3, #0
	bne	.L234
	ldr	r2, [fp, #-3084]
	ldr	r3, [fp, #-3080]
	sub	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #187
	mov	r0, r3
	bl	runtime_assert
.L234:
	mvn	r3, #127
	str	r3, [fp, #-3072]
	mov	r3, #1
	str	r3, [fp, #-3068]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3072]
	ldr	r3, [fp, #-3068]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L235
	mov	r3, #1
	mov	r0, r3
.L235:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L237
	mov	r3, #1
	mov	r0, r3
.L237:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3064]
	ldr	r3, [fp, #-3064]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #188
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3064]
	cmp	r3, #0
	bne	.L238
	ldr	r2, [fp, #-3072]
	ldr	r3, [fp, #-3068]
	sub	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #188
	mov	r0, r3
	bl	runtime_assert
.L238:
	mov	r3, #0
	str	r3, [fp, #-3060]
	mvn	r3, #127
	str	r3, [fp, #-3056]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3060]
	ldr	r3, [fp, #-3056]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L239
	mov	r3, #1
	mov	r0, r3
.L239:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L241
	mov	r3, #1
	mov	r0, r3
.L241:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3052]
	ldr	r3, [fp, #-3052]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #189
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3052]
	cmp	r3, #0
	bne	.L242
	ldr	r2, [fp, #-3060]
	ldr	r3, [fp, #-3056]
	sub	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #189
	mov	r0, r3
	bl	runtime_assert
.L242:
	mvn	r3, #0
	str	r3, [fp, #-3048]
	mvn	r3, #127
	str	r3, [fp, #-3044]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-3048]
	ldr	r3, [fp, #-3044]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L243
	mov	r3, #1
	mov	r0, r3
.L243:
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r2, r3
	beq	.L245
	mov	r3, #1
	mov	r0, r3
.L245:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3040]
	ldr	r3, [fp, #-3040]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #190
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3040]
	cmp	r3, #0
	bne	.L246
	ldr	r2, [fp, #-3048]
	ldr	r3, [fp, #-3044]
	sub	r2, r2, r3
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #190
	mov	r0, r3
	bl	runtime_assert
.L246:
	mov	r3, #0
	str	r3, [fp, #-3036]
	mov	r3, #0
	str	r3, [fp, #-3032]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3036]
	ldr	r3, [fp, #-3032]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L247
	mov	r3, #1
	mov	r0, r3	@ movhi
.L247:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L249
	mov	r3, #1
	mov	r0, r3	@ movhi
.L249:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3028]
	ldr	r3, [fp, #-3028]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #192
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3028]
	cmp	r3, #0
	bne	.L250
	ldr	r2, [fp, #-3036]
	ldr	r3, [fp, #-3032]
	sub	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #192
	mov	r0, r3
	bl	runtime_assert
.L250:
	mov	r3, #0
	str	r3, [fp, #-3024]
	ldr	r3, .L1043+4
	str	r3, [fp, #-3020]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3024]
	ldr	r3, [fp, #-3020]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L251
	mov	r3, #1
	mov	r0, r3	@ movhi
.L251:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L253
	mov	r3, #1
	mov	r0, r3	@ movhi
.L253:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3016]
	ldr	r3, [fp, #-3016]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #193
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3016]
	cmp	r3, #0
	bne	.L254
	ldr	r2, [fp, #-3024]
	ldr	r3, [fp, #-3020]
	sub	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #193
	mov	r0, r3
	bl	runtime_assert
.L254:
	mov	r3, #1
	str	r3, [fp, #-3012]
	ldr	r3, .L1043+4
	str	r3, [fp, #-3008]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3012]
	ldr	r3, [fp, #-3008]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L255
	mov	r3, #1
	mov	r0, r3	@ movhi
.L255:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L257
	mov	r3, #1
	mov	r0, r3	@ movhi
.L257:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-3004]
	ldr	r3, [fp, #-3004]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #194
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-3004]
	cmp	r3, #0
	bne	.L258
	ldr	r2, [fp, #-3012]
	ldr	r3, [fp, #-3008]
	sub	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #194
	mov	r0, r3
	bl	runtime_assert
.L258:
	ldr	r3, .L1043+4
	str	r3, [fp, #-3000]
	ldr	r3, .L1043+4
	str	r3, [fp, #-2996]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-3000]
	ldr	r3, [fp, #-2996]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L259
	mov	r3, #1
	mov	r0, r3	@ movhi
.L259:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L261
	mov	r3, #1
	mov	r0, r3	@ movhi
.L261:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2992]
	ldr	r3, [fp, #-2992]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #195
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2992]
	cmp	r3, #0
	bne	.L262
	ldr	r2, [fp, #-3000]
	ldr	r3, [fp, #-2996]
	sub	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #195
	mov	r0, r3
	bl	runtime_assert
.L262:
	mov	r3, #0
	str	r3, [fp, #-2988]
	ldr	r3, .L1043+8
	str	r3, [fp, #-2984]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2988]
	ldr	r3, [fp, #-2984]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L263
	mov	r3, #1
	mov	r0, r3	@ movhi
.L263:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L265
	mov	r3, #1
	mov	r0, r3	@ movhi
.L265:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2980]
	ldr	r3, [fp, #-2980]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #196
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2980]
	cmp	r3, #0
	bne	.L266
	ldr	r2, [fp, #-2988]
	ldr	r3, [fp, #-2984]
	sub	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #196
	mov	r0, r3
	bl	runtime_assert
.L266:
	mvn	r3, #0
	str	r3, [fp, #-2976]
	ldr	r3, .L1043+8
	str	r3, [fp, #-2972]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2976]
	ldr	r3, [fp, #-2972]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L267
	mov	r3, #1
	mov	r0, r3	@ movhi
.L267:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L269
	mov	r3, #1
	mov	r0, r3	@ movhi
.L269:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2968]
	ldr	r3, [fp, #-2968]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #197
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2968]
	cmp	r3, #0
	bne	.L270
	ldr	r2, [fp, #-2976]
	ldr	r3, [fp, #-2972]
	sub	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #197
	mov	r0, r3
	bl	runtime_assert
.L270:
	ldr	r3, .L1043+8
	str	r3, [fp, #-2964]
	ldr	r3, .L1043+8
	str	r3, [fp, #-2960]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2964]
	ldr	r3, [fp, #-2960]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L271
	mov	r3, #1
	mov	r0, r3	@ movhi
.L271:
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r2, r3
	beq	.L273
	mov	r3, #1
	mov	r0, r3	@ movhi
.L273:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2956]
	ldr	r3, [fp, #-2956]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #198
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2956]
	cmp	r3, #0
	bne	.L274
	ldr	r2, [fp, #-2964]
	ldr	r3, [fp, #-2960]
	sub	r2, r2, r3
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #198
	mov	r0, r3
	bl	runtime_assert
.L274:
	mov	r3, #0
	str	r3, [fp, #-2952]
	mov	r3, #0
	str	r3, [fp, #-2948]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2952]
	ldr	r3, [fp, #-2948]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L275
	mov	r1, #1
.L275:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2944]
	ldr	r3, [fp, #-2944]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #200
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2944]
	cmp	r3, #0
	bne	.L277
	ldr	r2, [fp, #-2952]
	ldr	r3, [fp, #-2948]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #200
	mov	r0, r3
	bl	runtime_assert
.L277:
	mov	r3, #0
	str	r3, [fp, #-2940]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2936]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2940]
	ldr	r3, [fp, #-2936]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L278
	mov	r1, #1
.L278:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2932]
	ldr	r3, [fp, #-2932]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #201
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2932]
	cmp	r3, #0
	bne	.L280
	ldr	r2, [fp, #-2940]
	ldr	r3, [fp, #-2936]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #201
	mov	r0, r3
	bl	runtime_assert
.L280:
	mov	r3, #1
	str	r3, [fp, #-2928]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2924]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2928]
	ldr	r3, [fp, #-2924]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L281
	mov	r1, #1
.L281:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2920]
	ldr	r3, [fp, #-2920]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #202
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2920]
	cmp	r3, #0
	bne	.L283
	ldr	r2, [fp, #-2928]
	ldr	r3, [fp, #-2924]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #202
	mov	r0, r3
	bl	runtime_assert
.L283:
	mvn	r3, #-2147483648
	str	r3, [fp, #-2916]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2912]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2916]
	ldr	r3, [fp, #-2912]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L284
	mov	r1, #1
.L284:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2908]
	ldr	r3, [fp, #-2908]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #203
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2908]
	cmp	r3, #0
	bne	.L286
	ldr	r2, [fp, #-2916]
	ldr	r3, [fp, #-2912]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #203
	mov	r0, r3
	bl	runtime_assert
.L286:
	mov	r3, #0
	str	r3, [fp, #-2904]
	mov	r3, #-2147483648
	str	r3, [fp, #-2900]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2904]
	ldr	r3, [fp, #-2900]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L287
	mov	r1, #1
.L287:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2896]
	ldr	r3, [fp, #-2896]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #204
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2896]
	cmp	r3, #0
	bne	.L289
	ldr	r2, [fp, #-2904]
	ldr	r3, [fp, #-2900]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #204
	mov	r0, r3
	bl	runtime_assert
.L289:
	mvn	r3, #0
	str	r3, [fp, #-2892]
	mov	r3, #-2147483648
	str	r3, [fp, #-2888]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2892]
	ldr	r3, [fp, #-2888]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L290
	mov	r1, #1
.L290:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2884]
	ldr	r3, [fp, #-2884]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #205
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2884]
	cmp	r3, #0
	bne	.L292
	ldr	r2, [fp, #-2892]
	ldr	r3, [fp, #-2888]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #205
	mov	r0, r3
	bl	runtime_assert
.L292:
	mov	r3, #-2147483648
	str	r3, [fp, #-2880]
	mov	r3, #-2147483648
	str	r3, [fp, #-2876]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2880]
	ldr	r3, [fp, #-2876]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L293
	mov	r1, #1
.L293:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2872]
	ldr	r3, [fp, #-2872]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #206
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2872]
	cmp	r3, #0
	bne	.L295
	ldr	r2, [fp, #-2880]
	ldr	r3, [fp, #-2876]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #206
	mov	r0, r3
	bl	runtime_assert
.L295:
	mov	r3, #0
	str	r3, [fp, #-2868]
	mov	r3, #0
	str	r3, [fp, #-2864]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2868]
	ldr	r3, [fp, #-2864]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L296
	mov	r1, #1
.L296:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2860]
	ldr	r3, [fp, #-2860]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #208
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2860]
	cmp	r3, #0
	bne	.L298
	ldr	r2, [fp, #-2868]
	ldr	r3, [fp, #-2864]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #208
	mov	r0, r3
	bl	runtime_assert
.L298:
	mov	r3, #0
	str	r3, [fp, #-2856]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2852]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2856]
	ldr	r3, [fp, #-2852]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L299
	mov	r1, #1
.L299:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2848]
	ldr	r3, [fp, #-2848]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #209
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2848]
	cmp	r3, #0
	bne	.L301
	ldr	r2, [fp, #-2856]
	ldr	r3, [fp, #-2852]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #209
	mov	r0, r3
	bl	runtime_assert
.L301:
	mov	r3, #1
	str	r3, [fp, #-2844]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2840]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2844]
	ldr	r3, [fp, #-2840]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L302
	mov	r1, #1
.L302:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2836]
	ldr	r3, [fp, #-2836]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #210
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2836]
	cmp	r3, #0
	bne	.L304
	ldr	r2, [fp, #-2844]
	ldr	r3, [fp, #-2840]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #210
	mov	r0, r3
	bl	runtime_assert
.L304:
	mvn	r3, #-2147483648
	str	r3, [fp, #-2832]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2828]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2832]
	ldr	r3, [fp, #-2828]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L305
	mov	r1, #1
.L305:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2824]
	ldr	r3, [fp, #-2824]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #211
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2824]
	cmp	r3, #0
	bne	.L307
	ldr	r2, [fp, #-2832]
	ldr	r3, [fp, #-2828]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #211
	mov	r0, r3
	bl	runtime_assert
.L307:
	mov	r3, #0
	str	r3, [fp, #-2820]
	mov	r3, #-2147483648
	str	r3, [fp, #-2816]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2820]
	ldr	r3, [fp, #-2816]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L308
	mov	r1, #1
.L308:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2812]
	ldr	r3, [fp, #-2812]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #212
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2812]
	cmp	r3, #0
	bne	.L310
	ldr	r2, [fp, #-2820]
	ldr	r3, [fp, #-2816]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #212
	mov	r0, r3
	bl	runtime_assert
.L310:
	mvn	r3, #0
	str	r3, [fp, #-2808]
	mov	r3, #-2147483648
	str	r3, [fp, #-2804]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2808]
	ldr	r3, [fp, #-2804]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L311
	mov	r1, #1
.L311:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2800]
	ldr	r3, [fp, #-2800]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #213
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2800]
	cmp	r3, #0
	bne	.L313
	ldr	r2, [fp, #-2808]
	ldr	r3, [fp, #-2804]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #213
	mov	r0, r3
	bl	runtime_assert
.L313:
	mov	r3, #-2147483648
	str	r3, [fp, #-2796]
	mov	r3, #-2147483648
	str	r3, [fp, #-2792]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2796]
	ldr	r3, [fp, #-2792]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L314
	mov	r1, #1
.L314:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2788]
	ldr	r3, [fp, #-2788]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #214
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2788]
	cmp	r3, #0
	bne	.L316
	ldr	r2, [fp, #-2796]
	ldr	r3, [fp, #-2792]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #214
	mov	r0, r3
	bl	runtime_assert
.L316:
	mov	r3, #0
	str	r3, [fp, #-2784]
	mov	r3, #0
	str	r3, [fp, #-2780]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-2784]
	ldr	r3, [fp, #-2780]
	mov	r4, #0
	mov	r5, #0
	mov	r0, r2
	asr	r1, r0, #31
	mov	r2, r3
	asr	r3, r2, #31
	subs	ip, r0, r2
	sub	lr, fp, #4352
	sub	lr, lr, #28
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4352
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #4352
	sub	r3, r3, #28
	ldmia	r3, {r2-r3}
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2776]
	ldr	r3, [fp, #-2776]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #216
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2776]
	cmp	r3, #0
	bne	.L317
	ldr	r2, [fp, #-2784]
	ldr	r3, [fp, #-2780]
	sub	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #216
	mov	r0, r3
	bl	runtime_assert
.L317:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-748]
	str	r3, [fp, #-744]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-740]
	str	r3, [fp, #-736]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #748
	ldmia	r1, {r0-r1}
	sub	r3, fp, #740
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L318
	mov	r4, #1
	mov	r5, #0
.L318:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2772]
	ldr	r3, [fp, #-2772]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #217
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2772]
	cmp	r3, #0
	bne	.L320
	sub	r1, fp, #748
	ldmia	r1, {r0-r1}
	sub	r3, fp, #740
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #20
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #20
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #217
	mov	r0, r3
	bl	runtime_assert
.L320:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-732]
	str	r3, [fp, #-728]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-724]
	str	r3, [fp, #-720]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #732
	ldmia	r1, {r0-r1}
	sub	r3, fp, #724
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L321
	mov	r4, #1
	mov	r5, #0
.L321:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2768]
	ldr	r3, [fp, #-2768]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #218
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2768]
	cmp	r3, #0
	bne	.L323
	sub	r1, fp, #732
	ldmia	r1, {r0-r1}
	sub	r3, fp, #724
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #28
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #28
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #218
	mov	r0, r3
	bl	runtime_assert
.L323:
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-716]
	str	r3, [fp, #-712]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-708]
	str	r3, [fp, #-704]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #716
	ldmia	r1, {r0-r1}
	sub	r3, fp, #708
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L324
	mov	r4, #1
	mov	r5, #0
.L324:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2764]
	ldr	r3, [fp, #-2764]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #219
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2764]
	cmp	r3, #0
	bne	.L326
	sub	r1, fp, #716
	ldmia	r1, {r0-r1}
	sub	r3, fp, #708
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #36
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #219
	mov	r0, r3
	bl	runtime_assert
.L326:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-700]
	str	r3, [fp, #-696]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-692]
	str	r3, [fp, #-688]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	sub	r3, fp, #692
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L327
	mov	r4, #1
	mov	r5, #0
.L327:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2760]
	ldr	r3, [fp, #-2760]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #220
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2760]
	cmp	r3, #0
	bne	.L329
	sub	r1, fp, #700
	ldmia	r1, {r0-r1}
	sub	r3, fp, #692
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #44
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #44
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #220
	mov	r0, r3
	bl	runtime_assert
.L329:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-684]
	str	r3, [fp, #-680]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-676]
	str	r3, [fp, #-672]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #684
	ldmia	r1, {r0-r1}
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L330
	mov	r4, #1
	mov	r5, #0
.L330:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2756]
	ldr	r3, [fp, #-2756]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #221
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2756]
	cmp	r3, #0
	bne	.L332
	sub	r1, fp, #684
	ldmia	r1, {r0-r1}
	sub	r3, fp, #676
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #52
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #52
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #221
	mov	r0, r3
	bl	runtime_assert
.L332:
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-668]
	str	r3, [fp, #-664]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-660]
	str	r3, [fp, #-656]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #668
	ldmia	r1, {r0-r1}
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L333
	mov	r4, #1
	mov	r5, #0
.L333:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2752]
	ldr	r3, [fp, #-2752]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #222
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2752]
	cmp	r3, #0
	bne	.L335
	sub	r1, fp, #668
	ldmia	r1, {r0-r1}
	sub	r3, fp, #660
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4096
	sub	lr, lr, #60
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4096
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4096
	sub	r1, r1, #60
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #222
	mov	r0, r3
	bl	runtime_assert
.L335:
	mov	r3, #0
	str	r3, [fp, #-2748]
	mov	r3, #0
	str	r3, [fp, #-2744]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2748]
	ldr	r3, [fp, #-2744]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bvc	.L336
	mov	r3, #1
	mov	r0, r3
.L336:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L338
	mov	r3, #1
	mov	r0, r3
.L338:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2740]
	ldr	r3, [fp, #-2740]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #224
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2740]
	cmp	r3, #0
	bne	.L339
	ldr	r2, [fp, #-2748]
	ldr	r3, [fp, #-2744]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #224
	mov	r0, r3
	bl	runtime_assert
.L339:
	mov	r3, #0
	str	r3, [fp, #-2736]
	mov	r3, #255
	str	r3, [fp, #-2732]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2736]
	ldr	r3, [fp, #-2732]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bcs	.L340
	mov	r3, #1
	mov	r0, r3
.L340:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L342
	mov	r3, #1
	mov	r0, r3
.L342:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2728]
	ldr	r3, [fp, #-2728]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #225
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2728]
	cmp	r3, #0
	bne	.L343
	ldr	r2, [fp, #-2736]
	ldr	r3, [fp, #-2732]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #225
	mov	r0, r3
	bl	runtime_assert
.L343:
	mov	r3, #1
	str	r3, [fp, #-2724]
	mov	r3, #255
	str	r3, [fp, #-2720]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2724]
	ldr	r3, [fp, #-2720]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bcs	.L344
	mov	r3, #1
	mov	r0, r3
.L344:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L346
	mov	r3, #1
	mov	r0, r3
.L346:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2716]
	ldr	r3, [fp, #-2716]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #226
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2716]
	cmp	r3, #0
	bne	.L347
	ldr	r2, [fp, #-2724]
	ldr	r3, [fp, #-2720]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #226
	mov	r0, r3
	bl	runtime_assert
.L347:
	mov	r3, #255
	str	r3, [fp, #-2712]
	mov	r3, #255
	str	r3, [fp, #-2708]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2712]
	ldr	r3, [fp, #-2708]
	mov	r2, #0
	mov	r0, r2
	subs	r2, r1, r3
	bcs	.L348
	mov	r3, #1
	mov	r0, r3
.L348:
	and	r3, r2, #255
	cmp	r2, r3
	beq	.L350
	mov	r3, #1
	mov	r0, r3
.L350:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2704]
	ldr	r3, [fp, #-2704]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #227
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2704]
	cmp	r3, #0
	bne	.L351
	ldr	r2, [fp, #-2712]
	ldr	r3, [fp, #-2708]
	sub	r2, r2, r3
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #227
	mov	r0, r3
	bl	runtime_assert
.L351:
	mov	r3, #0
	str	r3, [fp, #-2700]
	mov	r3, #0
	str	r3, [fp, #-2696]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2700]
	ldr	r3, [fp, #-2696]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bvc	.L352
	mov	r3, #1
	mov	r0, r3	@ movhi
.L352:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L354
	mov	r3, #1
	mov	r0, r3	@ movhi
.L354:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2692]
	ldr	r3, [fp, #-2692]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #229
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2692]
	cmp	r3, #0
	bne	.L355
	ldr	r2, [fp, #-2700]
	ldr	r3, [fp, #-2696]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #229
	mov	r0, r3
	bl	runtime_assert
.L355:
	mov	r3, #0
	str	r3, [fp, #-2688]
	ldr	r3, .L1045+12
	str	r3, [fp, #-2684]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2688]
	ldr	r3, [fp, #-2684]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bcs	.L356
	mov	r3, #1
	mov	r0, r3	@ movhi
.L356:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L358
	mov	r3, #1
	mov	r0, r3	@ movhi
.L358:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2680]
	ldr	r3, [fp, #-2680]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #230
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2680]
	cmp	r3, #0
	bne	.L359
	ldr	r2, [fp, #-2688]
	ldr	r3, [fp, #-2684]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #230
	mov	r0, r3
	bl	runtime_assert
.L359:
	mov	r3, #1
	str	r3, [fp, #-2676]
	ldr	r3, .L1045+12
	str	r3, [fp, #-2672]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2676]
	ldr	r3, [fp, #-2672]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bcs	.L360
	mov	r3, #1
	mov	r0, r3	@ movhi
.L360:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L362
	mov	r3, #1
	mov	r0, r3	@ movhi
.L362:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2668]
	ldr	r3, [fp, #-2668]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #231
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2668]
	cmp	r3, #0
	bne	.L363
	ldr	r2, [fp, #-2676]
	ldr	r3, [fp, #-2672]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #231
	mov	r0, r3
	bl	runtime_assert
.L363:
	ldr	r3, .L1045+12
	str	r3, [fp, #-2664]
	ldr	r3, .L1045+12
	str	r3, [fp, #-2660]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2664]
	ldr	r3, [fp, #-2660]
	mov	r2, #0
	mov	r0, r2	@ movhi
	subs	r2, r1, r3
	bcs	.L364
	mov	r3, #1
	mov	r0, r3	@ movhi
.L364:
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r2, r3
	beq	.L366
	mov	r3, #1
	mov	r0, r3	@ movhi
.L366:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2656]
	ldr	r3, [fp, #-2656]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #232
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2656]
	cmp	r3, #0
	bne	.L367
	ldr	r2, [fp, #-2664]
	ldr	r3, [fp, #-2660]
	sub	r2, r2, r3
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #232
	mov	r0, r3
	bl	runtime_assert
.L367:
	mov	r3, #0
	str	r3, [fp, #-2652]
	mov	r3, #0
	str	r3, [fp, #-2648]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2652]
	ldr	r3, [fp, #-2648]
	mov	r0, #0
	sub	r1, r2, r3
	cmp	r3, #0
	bge	.L370
	and	r3, r2, r1
	cmp	r3, #0
	bge	.L368
	b	.L369
.L370:
	orr	r3, r2, r1
	cmp	r3, #0
	bge	.L368
.L369:
	mov	r0, #1
.L368:
	mov	r3, r1
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2644]
	ldr	r3, [fp, #-2644]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #234
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2644]
	cmp	r3, #0
	bne	.L371
	ldr	r2, [fp, #-2652]
	ldr	r3, [fp, #-2648]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #234
	mov	r0, r3
	bl	runtime_assert
.L371:
	mov	r3, #0
	str	r3, [fp, #-2640]
	mvn	r3, #0
	str	r3, [fp, #-2636]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2640]
	ldr	r3, [fp, #-2636]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L372
	mov	r1, #1
.L372:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2632]
	ldr	r3, [fp, #-2632]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #235
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2632]
	cmp	r3, #0
	bne	.L374
	ldr	r2, [fp, #-2640]
	ldr	r3, [fp, #-2636]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #235
	mov	r0, r3
	bl	runtime_assert
.L374:
	mov	r3, #1
	str	r3, [fp, #-2628]
	mvn	r3, #0
	str	r3, [fp, #-2624]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2628]
	ldr	r3, [fp, #-2624]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L375
	mov	r1, #1
.L375:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2620]
	ldr	r3, [fp, #-2620]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #236
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2620]
	cmp	r3, #0
	bne	.L377
	ldr	r2, [fp, #-2628]
	ldr	r3, [fp, #-2624]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #236
	mov	r0, r3
	bl	runtime_assert
.L377:
	mvn	r3, #0
	str	r3, [fp, #-2616]
	mvn	r3, #0
	str	r3, [fp, #-2612]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2616]
	ldr	r3, [fp, #-2612]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L378
	mov	r1, #1
.L378:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2608]
	ldr	r3, [fp, #-2608]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #237
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2608]
	cmp	r3, #0
	bne	.L380
	ldr	r2, [fp, #-2616]
	ldr	r3, [fp, #-2612]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #237
	mov	r0, r3
	bl	runtime_assert
.L380:
	mov	r3, #0
	str	r3, [fp, #-2604]
	mov	r3, #0
	str	r3, [fp, #-2600]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2604]
	ldr	r3, [fp, #-2600]
	mov	r0, #0
	sub	r1, r2, r3
	cmp	r3, #0
	bge	.L383
	and	r3, r2, r1
	cmp	r3, #0
	bge	.L381
	b	.L382
.L383:
	orr	r3, r2, r1
	cmp	r3, #0
	bge	.L381
.L382:
	mov	r0, #1
.L381:
	mov	r3, r1
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2596]
	ldr	r3, [fp, #-2596]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #239
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2596]
	cmp	r3, #0
	bne	.L384
	ldr	r2, [fp, #-2604]
	ldr	r3, [fp, #-2600]
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #239
	mov	r0, r3
	bl	runtime_assert
.L384:
	mov	r3, #0
	str	r3, [fp, #-2592]
	mvn	r3, #0
	str	r3, [fp, #-2588]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2592]
	ldr	r3, [fp, #-2588]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L385
	mov	r1, #1
.L385:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2584]
	ldr	r3, [fp, #-2584]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #240
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2584]
	cmp	r3, #0
	bne	.L387
	ldr	r2, [fp, #-2592]
	ldr	r3, [fp, #-2588]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #240
	mov	r0, r3
	bl	runtime_assert
.L387:
	mov	r3, #1
	str	r3, [fp, #-2580]
	mvn	r3, #0
	str	r3, [fp, #-2576]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2580]
	ldr	r3, [fp, #-2576]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L388
	mov	r1, #1
.L388:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2572]
	ldr	r3, [fp, #-2572]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #241
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2572]
	cmp	r3, #0
	bne	.L390
	ldr	r2, [fp, #-2580]
	ldr	r3, [fp, #-2576]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #241
	mov	r0, r3
	bl	runtime_assert
.L390:
	mvn	r3, #0
	str	r3, [fp, #-2568]
	mvn	r3, #0
	str	r3, [fp, #-2564]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2568]
	ldr	r3, [fp, #-2564]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L391
	mov	r1, #1
.L391:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2560]
	ldr	r3, [fp, #-2560]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #242
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2560]
	cmp	r3, #0
	bne	.L393
	ldr	r2, [fp, #-2568]
	ldr	r3, [fp, #-2564]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #242
	mov	r0, r3
	bl	runtime_assert
.L393:
	mov	r3, #0
	str	r3, [fp, #-2556]
	mov	r3, #0
	str	r3, [fp, #-2552]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-2556]
	ldr	r3, [fp, #-2552]
	mov	r0, r2
	asr	r1, r0, #31
	mov	r2, r3
	asr	r3, r2, #31
	mov	r4, #0
	mov	r5, #0
	subs	ip, r0, r2
	str	ip, [fp, #-3964]
	sbc	ip, r1, r3
	str	ip, [fp, #-3960]
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L396
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	ip, r2
	and	ip, r0, ip
	sub	lr, fp, #4352
	sub	lr, lr, #36
	str	ip, [lr]
	and	r3, r1, r3
	sub	r2, fp, #4352
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #4352
	sub	r3, r3, #36
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L394
	b	.L395
.L1046:
	.align	2
.L1045:
	.word	257
	.word	258
	.word	259
	.word	65535
	.word	262
	.word	263
	.word	265
.L396:
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	ip, r2
	orr	ip, r0, ip
	sub	lr, fp, #4352
	sub	lr, lr, #44
	str	ip, [lr]
	orr	r3, r1, r3
	sub	r2, fp, #4352
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #4352
	sub	r3, r3, #44
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L394
.L395:
	mov	r4, #1
	mov	r5, #0
.L394:
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2548]
	ldr	r3, [fp, #-2548]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #244
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2548]
	cmp	r3, #0
	bne	.L397
	ldr	r2, [fp, #-2556]
	ldr	r3, [fp, #-2552]
	sub	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #244
	mov	r0, r3
	bl	runtime_assert
.L397:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-652]
	str	r3, [fp, #-648]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-644]
	str	r3, [fp, #-640]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #652
	ldmia	r1, {r0-r1}
	sub	r3, fp, #644
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L398
	mov	r4, #1
	mov	r5, #0
.L398:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2544]
	ldr	r3, [fp, #-2544]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #245
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2544]
	cmp	r3, #0
	bne	.L400
	sub	r1, fp, #652
	ldmia	r1, {r0-r1}
	sub	r3, fp, #644
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #4
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4160
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #4
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #245
	mov	r0, r3
	bl	runtime_assert
.L400:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-636]
	str	r3, [fp, #-632]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-628]
	str	r3, [fp, #-624]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #636
	ldmia	r1, {r0-r1}
	sub	r3, fp, #628
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L401
	mov	r4, #1
	mov	r5, #0
.L401:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2540]
	ldr	r3, [fp, #-2540]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #246
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2540]
	cmp	r3, #0
	bne	.L403
	sub	r1, fp, #636
	ldmia	r1, {r0-r1}
	sub	r3, fp, #628
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #12
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4160
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #12
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #246
	mov	r0, r3
	bl	runtime_assert
.L403:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-620]
	str	r3, [fp, #-616]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-612]
	str	r3, [fp, #-608]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	r3, fp, #612
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L404
	mov	r4, #1
	mov	r5, #0
.L404:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2536]
	ldr	r3, [fp, #-2536]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #247
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2536]
	cmp	r3, #0
	bne	.L406
	sub	r1, fp, #620
	ldmia	r1, {r0-r1}
	sub	r3, fp, #612
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #20
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4160
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #20
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #247
	mov	r0, r3
	bl	runtime_assert
.L406:
	mov	r3, #0
	str	r3, [fp, #-2532]
	mov	r3, #0
	str	r3, [fp, #-2528]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2532]
	ldr	r2, [fp, #-2528]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L407
	mov	r3, #1
	mov	r0, r3
.L407:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L409
	mov	r3, #1
	mov	r0, r3
.L409:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2524]
	ldr	r3, [fp, #-2524]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #250
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2524]
	cmp	r3, #0
	bne	.L410
	ldr	r2, [fp, #-2532]
	ldr	r3, [fp, #-2528]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #250
	mov	r0, r3
	bl	runtime_assert
.L410:
	mov	r3, #0
	str	r3, [fp, #-2520]
	mov	r3, #255
	str	r3, [fp, #-2516]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2520]
	ldr	r2, [fp, #-2516]
	mov	r3, #0
	mov	r0, r3
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L411
	mov	r3, #1
	mov	r0, r3
.L411:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L413
	mov	r3, #1
	mov	r0, r3
.L413:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2512]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #251
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2512]
	cmp	r3, #0
	bne	.L414
	ldr	r2, [fp, #-2520]
	ldr	r3, [fp, #-2516]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #251
	mov	r0, r3
	bl	runtime_assert
.L414:
	mov	r3, #1
	str	r3, [fp, #-2508]
	mov	r3, #255
	str	r3, [fp, #-2504]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2508]
	ldr	r2, [fp, #-2504]
	mov	r3, #0
	mov	r0, r3
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L415
	mov	r3, #1
	mov	r0, r3
.L415:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L417
	mov	r3, #1
	mov	r0, r3
.L417:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2500]
	ldr	r3, [fp, #-2500]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #252
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2500]
	cmp	r3, #0
	bne	.L418
	ldr	r2, [fp, #-2508]
	ldr	r3, [fp, #-2504]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #252
	mov	r0, r3
	bl	runtime_assert
.L418:
	mov	r3, #2
	str	r3, [fp, #-2496]
	mov	r3, #255
	str	r3, [fp, #-2492]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2496]
	ldr	r2, [fp, #-2492]
	mov	r3, #0
	mov	r0, r3
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L419
	mov	r3, #1
	mov	r0, r3
.L419:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L421
	mov	r3, #1
	mov	r0, r3
.L421:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2488]
	ldr	r3, [fp, #-2488]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #253
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2488]
	cmp	r3, #0
	bne	.L422
	ldr	r2, [fp, #-2496]
	ldr	r3, [fp, #-2492]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #253
	mov	r0, r3
	bl	runtime_assert
.L422:
	mov	r3, #255
	str	r3, [fp, #-2484]
	mov	r3, #255
	str	r3, [fp, #-2480]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2484]
	ldr	r2, [fp, #-2480]
	mov	r3, #0
	mov	r0, r3
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L423
	mov	r3, #1
	mov	r0, r3
.L423:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L425
	mov	r3, #1
	mov	r0, r3
.L425:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2476]
	ldr	r3, [fp, #-2476]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #254
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2476]
	cmp	r3, #0
	bne	.L426
	ldr	r2, [fp, #-2484]
	ldr	r3, [fp, #-2480]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #254
	mov	r0, r3
	bl	runtime_assert
.L426:
	mov	r3, #0
	str	r3, [fp, #-2472]
	mov	r3, #0
	str	r3, [fp, #-2468]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2472]
	ldr	r2, [fp, #-2468]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L427
	mov	r3, #1
	mov	r0, r3	@ movhi
.L427:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L429
	mov	r3, #1
	mov	r0, r3	@ movhi
.L429:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2464]
	ldr	r3, [fp, #-2464]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #256
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2464]
	cmp	r3, #0
	bne	.L430
	ldr	r2, [fp, #-2472]
	ldr	r3, [fp, #-2468]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #256
	mov	r0, r3
	bl	runtime_assert
.L430:
	mov	r3, #0
	str	r3, [fp, #-2460]
	ldr	r3, .L1045+12
	str	r3, [fp, #-2456]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2460]
	ldr	r2, [fp, #-2456]
	mov	r3, #0
	mov	r0, r3	@ movhi
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L431
	mov	r3, #1
	mov	r0, r3	@ movhi
.L431:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L433
	mov	r3, #1
	mov	r0, r3	@ movhi
.L433:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2452]
	ldr	r3, [fp, #-2452]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2452]
	cmp	r3, #0
	bne	.L434
	ldr	r2, [fp, #-2460]
	ldr	r3, [fp, #-2456]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045
	mov	r0, r3
	bl	runtime_assert
.L434:
	mov	r3, #1
	str	r3, [fp, #-2448]
	ldr	r3, .L1045+12
	str	r3, [fp, #-2444]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2448]
	ldr	r2, [fp, #-2444]
	mov	r3, #0
	mov	r0, r3	@ movhi
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L435
	mov	r3, #1
	mov	r0, r3	@ movhi
.L435:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L437
	mov	r3, #1
	mov	r0, r3	@ movhi
.L437:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2440]
	ldr	r3, [fp, #-2440]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+4
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2440]
	cmp	r3, #0
	bne	.L438
	ldr	r2, [fp, #-2448]
	ldr	r3, [fp, #-2444]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+4
	mov	r0, r3
	bl	runtime_assert
.L438:
	ldr	r3, .L1045+12
	str	r3, [fp, #-2436]
	mov	r3, #2
	str	r3, [fp, #-2432]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2436]
	ldr	r2, [fp, #-2432]
	mov	r3, #0
	mov	r0, r3	@ movhi
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L439
	mov	r3, #1
	mov	r0, r3	@ movhi
.L439:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L441
	mov	r3, #1
	mov	r0, r3	@ movhi
.L441:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2428]
	ldr	r3, [fp, #-2428]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+8
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2428]
	cmp	r3, #0
	bne	.L442
	ldr	r2, [fp, #-2436]
	ldr	r3, [fp, #-2432]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+8
	mov	r0, r3
	bl	runtime_assert
.L442:
	ldr	r3, .L1045+12
	str	r3, [fp, #-2424]
	ldr	r3, .L1045+12
	str	r3, [fp, #-2420]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2424]
	ldr	r2, [fp, #-2420]
	mov	r3, #0
	mov	r0, r3	@ movhi
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L443
	mov	r3, #1
	mov	r0, r3	@ movhi
.L443:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L445
	mov	r3, #1
	mov	r0, r3	@ movhi
.L445:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2416]
	ldr	r3, [fp, #-2416]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #260
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2416]
	cmp	r3, #0
	bne	.L446
	ldr	r2, [fp, #-2424]
	ldr	r3, [fp, #-2420]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #260
	mov	r0, r3
	bl	runtime_assert
.L446:
	mov	r3, #0
	str	r3, [fp, #-2412]
	mov	r3, #0
	str	r3, [fp, #-2408]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2412]
	ldr	r3, [fp, #-2408]
	mov	r0, #0
	mov	r1, r2
	mov	r2, r3
	and	r3, r1, r2
	cmp	r3, #0
	bge	.L450
	rsb	r3, r1, #0
	mov	r1, r3
	rsb	r3, r2, #0
	mov	r2, r3
	b	.L449
.L450:
	eor	r3, r1, r2
	cmp	r3, #0
	bge	.L449
	cmp	r1, #0
	beq	.L449
	cmp	r2, #0
	beq	.L449
	mov	r0, #1
.L449:
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L447
	mov	r0, #1
.L447:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2404]
	ldr	r3, [fp, #-2404]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+16
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2404]
	cmp	r3, #0
	bne	.L451
	ldr	r2, [fp, #-2412]
	ldr	r3, [fp, #-2408]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+16
	mov	r0, r3
	bl	runtime_assert
.L451:
	mov	r3, #0
	str	r3, [fp, #-2400]
	mvn	r3, #0
	str	r3, [fp, #-2396]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2400]
	ldr	r3, [fp, #-2396]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L452
	mov	ip, #1
.L452:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2392]
	ldr	r3, [fp, #-2392]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+20
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2392]
	cmp	r3, #0
	bne	.L454
	ldr	r2, [fp, #-2400]
	ldr	r3, [fp, #-2396]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+20
	mov	r0, r3
	bl	runtime_assert
.L454:
	mov	r3, #1
	str	r3, [fp, #-2388]
	mvn	r3, #0
	str	r3, [fp, #-2384]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2388]
	ldr	r3, [fp, #-2384]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L455
	mov	ip, #1
.L455:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2380]
	ldr	r3, [fp, #-2380]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #264
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2380]
	cmp	r3, #0
	bne	.L457
	ldr	r2, [fp, #-2388]
	ldr	r3, [fp, #-2384]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #264
	mov	r0, r3
	bl	runtime_assert
.L457:
	mov	r3, #2
	str	r3, [fp, #-2376]
	mvn	r3, #0
	str	r3, [fp, #-2372]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2376]
	ldr	r3, [fp, #-2372]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L458
	mov	ip, #1
.L458:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2368]
	ldr	r3, [fp, #-2368]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+24
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2368]
	cmp	r3, #0
	bne	.L460
	ldr	r2, [fp, #-2376]
	ldr	r3, [fp, #-2372]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1045+24
	mov	r0, r3
	bl	runtime_assert
.L460:
	mvn	r3, #0
	str	r3, [fp, #-2364]
	mvn	r3, #0
	str	r3, [fp, #-2360]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2364]
	ldr	r3, [fp, #-2360]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L461
	mov	ip, #1
.L461:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2356]
	ldr	r3, [fp, #-2356]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2356]
	cmp	r3, #0
	bne	.L463
	ldr	r2, [fp, #-2364]
	ldr	r3, [fp, #-2360]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047
	mov	r0, r3
	bl	runtime_assert
.L463:
	mov	r3, #0
	str	r3, [fp, #-2352]
	mov	r3, #0
	str	r3, [fp, #-2348]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2352]
	ldr	r3, [fp, #-2348]
	mov	r0, #0
	mov	r1, r2
	mov	r2, r3
	and	r3, r1, r2
	cmp	r3, #0
	bge	.L467
	rsb	r3, r1, #0
	mov	r1, r3
	rsb	r3, r2, #0
	mov	r2, r3
	b	.L466
.L467:
	eor	r3, r1, r2
	cmp	r3, #0
	bge	.L466
	cmp	r1, #0
	beq	.L466
	cmp	r2, #0
	beq	.L466
	mov	r0, #1
.L466:
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L464
	mov	r0, #1
.L464:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2344]
	ldr	r3, [fp, #-2344]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #268
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2344]
	cmp	r3, #0
	bne	.L468
	ldr	r2, [fp, #-2352]
	ldr	r3, [fp, #-2348]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #268
	mov	r0, r3
	bl	runtime_assert
.L468:
	mov	r3, #0
	str	r3, [fp, #-2340]
	mvn	r3, #0
	str	r3, [fp, #-2336]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2340]
	ldr	r3, [fp, #-2336]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L469
	mov	ip, #1
.L469:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2332]
	ldr	r3, [fp, #-2332]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+4
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2332]
	cmp	r3, #0
	bne	.L471
	ldr	r2, [fp, #-2340]
	ldr	r3, [fp, #-2336]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+4
	mov	r0, r3
	bl	runtime_assert
.L471:
	mov	r3, #1
	str	r3, [fp, #-2328]
	mvn	r3, #0
	str	r3, [fp, #-2324]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2328]
	ldr	r3, [fp, #-2324]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L472
	mov	ip, #1
.L472:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2320]
	ldr	r3, [fp, #-2320]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+8
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2320]
	cmp	r3, #0
	bne	.L474
	ldr	r2, [fp, #-2328]
	ldr	r3, [fp, #-2324]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+8
	mov	r0, r3
	bl	runtime_assert
.L474:
	mov	r3, #2
	str	r3, [fp, #-2316]
	mvn	r3, #0
	str	r3, [fp, #-2312]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2316]
	ldr	r3, [fp, #-2312]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L475
	mov	ip, #1
.L475:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2308]
	ldr	r3, [fp, #-2308]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+12
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2308]
	cmp	r3, #0
	bne	.L477
	ldr	r2, [fp, #-2316]
	ldr	r3, [fp, #-2312]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+12
	mov	r0, r3
	bl	runtime_assert
.L477:
	mvn	r3, #0
	str	r3, [fp, #-2304]
	mvn	r3, #0
	str	r3, [fp, #-2300]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2304]
	ldr	r3, [fp, #-2300]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L478
	mov	ip, #1
.L478:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2296]
	ldr	r3, [fp, #-2296]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #272
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2296]
	cmp	r3, #0
	bne	.L480
	ldr	r2, [fp, #-2304]
	ldr	r3, [fp, #-2300]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #272
	mov	r0, r3
	bl	runtime_assert
.L480:
	mov	r3, #0
	str	r3, [fp, #-2292]
	mov	r3, #0
	str	r3, [fp, #-2288]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-2292]
	ldr	r3, [fp, #-2288]
	mov	r0, r2
	asr	r1, r0, #31
	mov	r2, r3
	asr	r3, r2, #31
	mov	r4, #0
	mov	r5, #0
	str	r4, [fp, #-3964]
	str	r5, [fp, #-3960]
	mov	r6, r0
	mov	r7, r1
	mov	r4, r2
	mov	r5, r3
	and	r3, r6, r4
	sub	r2, fp, #4352
	sub	r2, r2, #52
	str	r3, [r2]
	and	r3, r7, r5
	sub	r2, fp, #4352
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #4352
	sub	r3, r3, #52
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L484
	rsbs	r2, r6, #0
	rsc	r3, r7, #0
	mov	r6, r2
	mov	r7, r3
	rsbs	r2, r4, #0
	rsc	r3, r5, #0
	mov	r4, r2
	mov	r5, r3
	b	.L483
.L484:
	eor	r3, r6, r4
	sub	r2, fp, #4352
	sub	r2, r2, #60
	str	r3, [r2]
	eor	r3, r7, r5
	sub	r2, fp, #4352
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #4352
	sub	r3, r3, #60
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L483
	orrs	r3, r6, r7
	beq	.L483
	orrs	r3, r4, r5
	beq	.L483
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-3964]
	str	r3, [fp, #-3960]
.L483:
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L485
	cmp	r2, #0
	bne	.L486
	umull	r2, r3, r6, r4
	str	r2, [fp, #-3972]
	str	r3, [fp, #-3968]
	b	.L481
.L486:
	mov	r0, r2
	mov	r1, r6
	b	.L487
.L485:
	cmp	r2, #0
	bne	.L488
	mov	r1, r4
.L487:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4416
	sub	lr, lr, #4
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4416
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #4
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L489
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-3972]
	orr	r3, r5, r3
	str	r3, [fp, #-3968]
	b	.L481
.L488:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L489:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3972]
	str	r1, [fp, #-3968]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
.L481:
	ldr	r2, [fp, #-3972]
	ldr	r3, [fp, #-3968]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2284]
	ldr	r3, [fp, #-2284]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+16
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2284]
	cmp	r3, #0
	bne	.L490
	ldr	r2, [fp, #-2292]
	ldr	r3, [fp, #-2288]
	mul	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+16
	mov	r0, r3
	bl	runtime_assert
.L490:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-604]
	str	r3, [fp, #-600]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-596]
	str	r3, [fp, #-592]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #604
	ldmia	r7, {r6-r7}
	sub	r5, fp, #596
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-3964]
	str	r3, [fp, #-3960]
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L493
	cmp	r2, #0
	bne	.L494
	umull	r2, r3, r6, r4
	str	r2, [fp, #-3980]
	str	r3, [fp, #-3976]
	b	.L491
.L494:
	mov	r0, r2
	mov	r1, r6
	b	.L495
.L493:
	cmp	r2, #0
	bne	.L496
	mov	r1, r4
.L495:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4416
	sub	lr, lr, #12
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4416
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #12
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L497
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-3980]
	orr	r3, r5, r3
	str	r3, [fp, #-3976]
	b	.L491
.L496:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L497:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3980]
	str	r1, [fp, #-3976]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
.L491:
	ldr	r2, [fp, #-3980]
	ldr	r3, [fp, #-3976]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2280]
	ldr	r3, [fp, #-2280]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+20
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2280]
	cmp	r3, #0
	bne	.L498
	sub	r1, fp, #604
	ldmia	r1, {r0-r1}
	sub	r5, fp, #596
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+20
	mov	r0, r3
	bl	runtime_assert
.L498:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-588]
	str	r3, [fp, #-584]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-580]
	str	r3, [fp, #-576]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #588
	ldmia	r7, {r6-r7}
	sub	r5, fp, #580
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-3964]
	str	r3, [fp, #-3960]
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L501
	cmp	r2, #0
	bne	.L502
	umull	r2, r3, r6, r4
	str	r2, [fp, #-3988]
	str	r3, [fp, #-3984]
	b	.L499
.L502:
	mov	r0, r2
	mov	r1, r6
	b	.L503
.L501:
	cmp	r2, #0
	bne	.L504
	mov	r1, r4
.L503:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4416
	sub	lr, lr, #20
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4416
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #20
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L505
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-3988]
	orr	r3, r5, r3
	str	r3, [fp, #-3984]
	b	.L499
.L504:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L505:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3988]
	str	r1, [fp, #-3984]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
.L499:
	ldr	r2, [fp, #-3988]
	ldr	r3, [fp, #-3984]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2276]
	ldr	r3, [fp, #-2276]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #276
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2276]
	cmp	r3, #0
	bne	.L506
	sub	r1, fp, #588
	ldmia	r1, {r0-r1}
	sub	r5, fp, #580
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #276
	mov	r0, r3
	bl	runtime_assert
.L506:
	mov	r2, #2
	mov	r3, #0
	str	r2, [fp, #-572]
	str	r3, [fp, #-568]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-564]
	str	r3, [fp, #-560]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #572
	ldmia	r7, {r6-r7}
	sub	r5, fp, #564
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-3964]
	str	r3, [fp, #-3960]
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L509
	cmp	r2, #0
	bne	.L510
	umull	r2, r3, r6, r4
	str	r2, [fp, #-3996]
	str	r3, [fp, #-3992]
	b	.L507
.L510:
	mov	r0, r2
	mov	r1, r6
	b	.L511
.L509:
	cmp	r2, #0
	bne	.L512
	mov	r1, r4
.L511:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4416
	sub	lr, lr, #28
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4416
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #28
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L513
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-3996]
	orr	r3, r5, r3
	str	r3, [fp, #-3992]
	b	.L507
.L512:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L513:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3996]
	str	r1, [fp, #-3992]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
.L507:
	ldr	r2, [fp, #-3996]
	ldr	r3, [fp, #-3992]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2272]
	ldr	r3, [fp, #-2272]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+24
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2272]
	cmp	r3, #0
	bne	.L514
	sub	r1, fp, #572
	ldmia	r1, {r0-r1}
	sub	r5, fp, #564
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+24
	mov	r0, r3
	bl	runtime_assert
.L514:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-556]
	str	r3, [fp, #-552]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-548]
	str	r3, [fp, #-544]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #556
	ldmia	r7, {r6-r7}
	sub	r5, fp, #548
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-3964]
	str	r3, [fp, #-3960]
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L517
	cmp	r2, #0
	bne	.L518
	umull	r2, r3, r6, r4
	str	r2, [fp, #-4004]
	str	r3, [fp, #-4000]
	b	.L515
.L518:
	mov	r0, r2
	mov	r1, r6
	b	.L519
.L517:
	cmp	r2, #0
	bne	.L520
	mov	r1, r4
.L519:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4416
	sub	lr, lr, #36
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4416
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #36
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L521
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-4004]
	orr	r3, r5, r3
	str	r3, [fp, #-4000]
	b	.L515
.L1048:
	.align	2
.L1047:
	.word	266
	.word	269
	.word	270
	.word	271
	.word	274
	.word	275
	.word	277
	.word	278
	.word	281
	.word	282
	.word	283
	.word	285
	.word	286
	.word	289
	.word	290
	.word	32767
	.word	291
	.word	293
	.word	-32768
	.word	294
	.word	297
	.word	298
.L520:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L521:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-4004]
	str	r1, [fp, #-4000]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
.L515:
	ldr	r2, [fp, #-4004]
	ldr	r3, [fp, #-4000]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2268]
	ldr	r3, [fp, #-2268]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+28
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2268]
	cmp	r3, #0
	bne	.L522
	sub	r1, fp, #556
	ldmia	r1, {r0-r1}
	sub	r5, fp, #548
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+28
	mov	r0, r3
	bl	runtime_assert
.L522:
	mov	r3, #0
	str	r3, [fp, #-2264]
	mov	r3, #0
	str	r3, [fp, #-2260]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2264]
	ldr	r2, [fp, #-2260]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L523
	mov	r3, #1
	mov	r0, r3
.L523:
	mov	r2, r4
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r3, r4
	beq	.L525
	mov	r3, #1
	mov	r0, r3
.L525:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2256]
	ldr	r3, [fp, #-2256]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #280
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2256]
	cmp	r3, #0
	bne	.L526
	ldr	r2, [fp, #-2264]
	ldr	r3, [fp, #-2260]
	mul	r2, r3, r2
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #280
	mov	r0, r3
	bl	runtime_assert
.L526:
	mov	r3, #0
	str	r3, [fp, #-2252]
	mov	r3, #127
	str	r3, [fp, #-2248]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2252]
	ldr	r2, [fp, #-2248]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L527
	mov	r3, #1
	mov	r0, r3
.L527:
	mov	r2, r4
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r3, r4
	beq	.L529
	mov	r3, #1
	mov	r0, r3
.L529:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2244]
	ldr	r3, [fp, #-2244]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+32
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2244]
	cmp	r3, #0
	bne	.L530
	ldr	r2, [fp, #-2252]
	ldr	r3, [fp, #-2248]
	mul	r2, r3, r2
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+32
	mov	r0, r3
	bl	runtime_assert
.L530:
	mov	r3, #1
	str	r3, [fp, #-2240]
	mov	r3, #127
	str	r3, [fp, #-2236]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2240]
	ldr	r2, [fp, #-2236]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L531
	mov	r3, #1
	mov	r0, r3
.L531:
	mov	r2, r4
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r3, r4
	beq	.L533
	mov	r3, #1
	mov	r0, r3
.L533:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2232]
	ldr	r3, [fp, #-2232]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+36
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2232]
	cmp	r3, #0
	bne	.L534
	ldr	r2, [fp, #-2240]
	ldr	r3, [fp, #-2236]
	mul	r2, r3, r2
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+36
	mov	r0, r3
	bl	runtime_assert
.L534:
	mov	r3, #127
	str	r3, [fp, #-2228]
	mov	r3, #127
	str	r3, [fp, #-2224]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2228]
	ldr	r2, [fp, #-2224]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L535
	mov	r3, #1
	mov	r0, r3
.L535:
	mov	r2, r4
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r3, r4
	beq	.L537
	mov	r3, #1
	mov	r0, r3
.L537:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2220]
	ldr	r3, [fp, #-2220]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+40
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2220]
	cmp	r3, #0
	bne	.L538
	ldr	r2, [fp, #-2228]
	ldr	r3, [fp, #-2224]
	mul	r2, r3, r2
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+40
	mov	r0, r3
	bl	runtime_assert
.L538:
	mvn	r3, #127
	str	r3, [fp, #-2216]
	mov	r3, #1
	str	r3, [fp, #-2212]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2216]
	ldr	r2, [fp, #-2212]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L539
	mov	r3, #1
	mov	r0, r3
.L539:
	mov	r2, r4
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r3, r4
	beq	.L541
	mov	r3, #1
	mov	r0, r3
.L541:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2208]
	ldr	r3, [fp, #-2208]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #284
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2208]
	cmp	r3, #0
	bne	.L542
	ldr	r2, [fp, #-2216]
	ldr	r3, [fp, #-2212]
	mul	r2, r3, r2
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #284
	mov	r0, r3
	bl	runtime_assert
.L542:
	mov	r3, #0
	str	r3, [fp, #-2204]
	mvn	r3, #127
	str	r3, [fp, #-2200]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2204]
	ldr	r2, [fp, #-2200]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L543
	mov	r3, #1
	mov	r0, r3
.L543:
	mov	r2, r4
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r3, r4
	beq	.L545
	mov	r3, #1
	mov	r0, r3
.L545:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2196]
	ldr	r3, [fp, #-2196]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+44
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2196]
	cmp	r3, #0
	bne	.L546
	ldr	r2, [fp, #-2204]
	ldr	r3, [fp, #-2200]
	mul	r2, r3, r2
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+44
	mov	r0, r3
	bl	runtime_assert
.L546:
	mvn	r3, #0
	str	r3, [fp, #-2192]
	mvn	r3, #127
	str	r3, [fp, #-2188]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-2192]
	ldr	r2, [fp, #-2188]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L547
	mov	r3, #1
	mov	r0, r3
.L547:
	mov	r2, r4
	lsl	r3, r2, #24
	asr	r3, r3, #24
	cmp	r3, r4
	beq	.L549
	mov	r3, #1
	mov	r0, r3
.L549:
	mov	r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-44]
	lsl	r3, r0, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2184]
	ldr	r3, [fp, #-2184]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+48
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2184]
	cmp	r3, #0
	bne	.L550
	ldr	r2, [fp, #-2192]
	ldr	r3, [fp, #-2188]
	mul	r2, r3, r2
	ldrsb	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+48
	mov	r0, r3
	bl	runtime_assert
.L550:
	mov	r3, #0
	str	r3, [fp, #-2180]
	mov	r3, #0
	str	r3, [fp, #-2176]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2180]
	ldr	r2, [fp, #-2176]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L551
	mov	r3, #1
	mov	r0, r3	@ movhi
.L551:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r3, r4
	beq	.L553
	mov	r3, #1
	mov	r0, r3	@ movhi
.L553:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2172]
	ldr	r3, [fp, #-2172]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #288
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2172]
	cmp	r3, #0
	bne	.L554
	ldr	r2, [fp, #-2180]
	ldr	r3, [fp, #-2176]
	mul	r2, r3, r2
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #288
	mov	r0, r3
	bl	runtime_assert
.L554:
	mov	r3, #0
	str	r3, [fp, #-2168]
	ldr	r3, .L1047+60
	str	r3, [fp, #-2164]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2168]
	ldr	r2, [fp, #-2164]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L555
	mov	r3, #1
	mov	r0, r3	@ movhi
.L555:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r3, r4
	beq	.L557
	mov	r3, #1
	mov	r0, r3	@ movhi
.L557:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2160]
	ldr	r3, [fp, #-2160]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+52
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2160]
	cmp	r3, #0
	bne	.L558
	ldr	r2, [fp, #-2168]
	ldr	r3, [fp, #-2164]
	mul	r2, r3, r2
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+52
	mov	r0, r3
	bl	runtime_assert
.L558:
	mov	r3, #1
	str	r3, [fp, #-2156]
	ldr	r3, .L1047+60
	str	r3, [fp, #-2152]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2156]
	ldr	r2, [fp, #-2152]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L559
	mov	r3, #1
	mov	r0, r3	@ movhi
.L559:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r3, r4
	beq	.L561
	mov	r3, #1
	mov	r0, r3	@ movhi
.L561:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2148]
	ldr	r3, [fp, #-2148]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+56
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2148]
	cmp	r3, #0
	bne	.L562
	ldr	r2, [fp, #-2156]
	ldr	r3, [fp, #-2152]
	mul	r2, r3, r2
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+56
	mov	r0, r3
	bl	runtime_assert
.L562:
	ldr	r3, .L1047+60
	str	r3, [fp, #-2144]
	ldr	r3, .L1047+60
	str	r3, [fp, #-2140]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2144]
	ldr	r2, [fp, #-2140]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L563
	mov	r3, #1
	mov	r0, r3	@ movhi
.L563:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r3, r4
	beq	.L565
	mov	r3, #1
	mov	r0, r3	@ movhi
.L565:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2136]
	ldr	r3, [fp, #-2136]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+64
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2136]
	cmp	r3, #0
	bne	.L566
	ldr	r2, [fp, #-2144]
	ldr	r3, [fp, #-2140]
	mul	r2, r3, r2
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+64
	mov	r0, r3
	bl	runtime_assert
.L566:
	mov	r3, #0
	str	r3, [fp, #-2132]
	ldr	r3, .L1047+72
	str	r3, [fp, #-2128]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2132]
	ldr	r2, [fp, #-2128]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L567
	mov	r3, #1
	mov	r0, r3	@ movhi
.L567:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r3, r4
	beq	.L569
	mov	r3, #1
	mov	r0, r3	@ movhi
.L569:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2124]
	ldr	r3, [fp, #-2124]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #292
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2124]
	cmp	r3, #0
	bne	.L570
	ldr	r2, [fp, #-2132]
	ldr	r3, [fp, #-2128]
	mul	r2, r3, r2
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #292
	mov	r0, r3
	bl	runtime_assert
.L570:
	mvn	r3, #0
	str	r3, [fp, #-2120]
	ldr	r3, .L1047+72
	str	r3, [fp, #-2116]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2120]
	ldr	r2, [fp, #-2116]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L571
	mov	r3, #1
	mov	r0, r3	@ movhi
.L571:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r3, r4
	beq	.L573
	mov	r3, #1
	mov	r0, r3	@ movhi
.L573:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2112]
	ldr	r3, [fp, #-2112]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+68
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2112]
	cmp	r3, #0
	bne	.L574
	ldr	r2, [fp, #-2120]
	ldr	r3, [fp, #-2116]
	mul	r2, r3, r2
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+68
	mov	r0, r3
	bl	runtime_assert
.L574:
	ldr	r3, .L1047+72
	str	r3, [fp, #-2108]
	ldr	r3, .L1047+72
	str	r3, [fp, #-2104]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-2108]
	ldr	r2, [fp, #-2104]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L575
	mov	r3, #1
	mov	r0, r3	@ movhi
.L575:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	asr	r3, r3, #16
	cmp	r3, r4
	beq	.L577
	mov	r3, #1
	mov	r0, r3	@ movhi
.L577:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	asr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2100]
	ldr	r3, [fp, #-2100]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+76
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2100]
	cmp	r3, #0
	bne	.L578
	ldr	r2, [fp, #-2108]
	ldr	r3, [fp, #-2104]
	mul	r2, r3, r2
	ldrsh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+76
	mov	r0, r3
	bl	runtime_assert
.L578:
	mov	r3, #0
	str	r3, [fp, #-2096]
	mov	r3, #0
	str	r3, [fp, #-2092]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2096]
	ldr	r3, [fp, #-2092]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L579
	mov	r0, #1
.L579:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2088]
	ldr	r3, [fp, #-2088]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #296
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2088]
	cmp	r3, #0
	bne	.L581
	ldr	r2, [fp, #-2096]
	ldr	r3, [fp, #-2092]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #296
	mov	r0, r3
	bl	runtime_assert
.L581:
	mov	r3, #0
	str	r3, [fp, #-2084]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2080]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2084]
	ldr	r3, [fp, #-2080]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L582
	mov	r0, #1
.L582:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2076]
	ldr	r3, [fp, #-2076]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+80
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2076]
	cmp	r3, #0
	bne	.L584
	ldr	r2, [fp, #-2084]
	ldr	r3, [fp, #-2080]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+80
	mov	r0, r3
	bl	runtime_assert
.L584:
	mov	r3, #1
	str	r3, [fp, #-2072]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2068]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2072]
	ldr	r3, [fp, #-2068]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L585
	mov	r0, #1
.L585:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2064]
	ldr	r3, [fp, #-2064]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+84
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2064]
	cmp	r3, #0
	bne	.L587
	ldr	r2, [fp, #-2072]
	ldr	r3, [fp, #-2068]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1047+84
	mov	r0, r3
	bl	runtime_assert
.L587:
	mvn	r3, #-2147483648
	str	r3, [fp, #-2060]
	mvn	r3, #-2147483648
	str	r3, [fp, #-2056]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2060]
	ldr	r3, [fp, #-2056]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L588
	mov	r0, #1
.L588:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2052]
	ldr	r3, [fp, #-2052]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2052]
	cmp	r3, #0
	bne	.L590
	ldr	r2, [fp, #-2060]
	ldr	r3, [fp, #-2056]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049
	mov	r0, r3
	bl	runtime_assert
.L590:
	mov	r3, #0
	str	r3, [fp, #-2048]
	mov	r3, #-2147483648
	str	r3, [fp, #-2044]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2048]
	ldr	r3, [fp, #-2044]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L591
	mov	r0, #1
.L591:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2040]
	ldr	r3, [fp, #-2040]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #300
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2040]
	cmp	r3, #0
	bne	.L593
	ldr	r2, [fp, #-2048]
	ldr	r3, [fp, #-2044]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #300
	mov	r0, r3
	bl	runtime_assert
.L593:
	mvn	r3, #0
	str	r3, [fp, #-2036]
	mov	r3, #-2147483648
	str	r3, [fp, #-2032]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2036]
	ldr	r3, [fp, #-2032]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L594
	mov	r0, #1
.L594:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2028]
	ldr	r3, [fp, #-2028]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+4
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2028]
	cmp	r3, #0
	bne	.L596
	ldr	r2, [fp, #-2036]
	ldr	r3, [fp, #-2032]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+4
	mov	r0, r3
	bl	runtime_assert
.L596:
	mov	r3, #-2147483648
	str	r3, [fp, #-2024]
	mov	r3, #-2147483648
	str	r3, [fp, #-2020]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2024]
	ldr	r3, [fp, #-2020]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L597
	mov	r0, #1
.L597:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2016]
	ldr	r3, [fp, #-2016]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+8
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2016]
	cmp	r3, #0
	bne	.L599
	ldr	r2, [fp, #-2024]
	ldr	r3, [fp, #-2020]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+8
	mov	r0, r3
	bl	runtime_assert
.L599:
	mov	r3, #0
	str	r3, [fp, #-2012]
	mov	r3, #0
	str	r3, [fp, #-2008]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2012]
	ldr	r3, [fp, #-2008]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L600
	mov	r0, #1
.L600:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-2004]
	ldr	r3, [fp, #-2004]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #304
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-2004]
	cmp	r3, #0
	bne	.L602
	ldr	r2, [fp, #-2012]
	ldr	r3, [fp, #-2008]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #304
	mov	r0, r3
	bl	runtime_assert
.L602:
	mov	r3, #0
	str	r3, [fp, #-2000]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1996]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-2000]
	ldr	r3, [fp, #-1996]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L603
	mov	r0, #1
.L603:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1992]
	ldr	r3, [fp, #-1992]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+12
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1992]
	cmp	r3, #0
	bne	.L605
	ldr	r2, [fp, #-2000]
	ldr	r3, [fp, #-1996]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+12
	mov	r0, r3
	bl	runtime_assert
.L605:
	mov	r3, #1
	str	r3, [fp, #-1988]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1984]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1988]
	ldr	r3, [fp, #-1984]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L606
	mov	r0, #1
.L606:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1980]
	ldr	r3, [fp, #-1980]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+16
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1980]
	cmp	r3, #0
	bne	.L608
	ldr	r2, [fp, #-1988]
	ldr	r3, [fp, #-1984]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+16
	mov	r0, r3
	bl	runtime_assert
.L608:
	mvn	r3, #-2147483648
	str	r3, [fp, #-1976]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1972]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1976]
	ldr	r3, [fp, #-1972]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L609
	mov	r0, #1
.L609:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1968]
	ldr	r3, [fp, #-1968]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+20
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1968]
	cmp	r3, #0
	bne	.L611
	ldr	r2, [fp, #-1976]
	ldr	r3, [fp, #-1972]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+20
	mov	r0, r3
	bl	runtime_assert
.L611:
	mov	r3, #0
	str	r3, [fp, #-1964]
	mov	r3, #-2147483648
	str	r3, [fp, #-1960]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1964]
	ldr	r3, [fp, #-1960]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L612
	mov	r0, #1
.L612:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1956]
	ldr	r3, [fp, #-1956]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #308
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1956]
	cmp	r3, #0
	bne	.L614
	ldr	r2, [fp, #-1964]
	ldr	r3, [fp, #-1960]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #308
	mov	r0, r3
	bl	runtime_assert
.L614:
	mvn	r3, #0
	str	r3, [fp, #-1952]
	mov	r3, #-2147483648
	str	r3, [fp, #-1948]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1952]
	ldr	r3, [fp, #-1948]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L615
	mov	r0, #1
.L615:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1944]
	ldr	r3, [fp, #-1944]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+24
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1944]
	cmp	r3, #0
	bne	.L617
	ldr	r2, [fp, #-1952]
	ldr	r3, [fp, #-1948]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+24
	mov	r0, r3
	bl	runtime_assert
.L617:
	mov	r3, #-2147483648
	str	r3, [fp, #-1940]
	mov	r3, #-2147483648
	str	r3, [fp, #-1936]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1940]
	ldr	r3, [fp, #-1936]
	mov	r0, #0
	smull	r4, r5, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L618
	mov	r0, #1
.L618:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1932]
	ldr	r3, [fp, #-1932]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+28
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1932]
	cmp	r3, #0
	bne	.L620
	ldr	r2, [fp, #-1940]
	ldr	r3, [fp, #-1936]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+28
	mov	r0, r3
	bl	runtime_assert
.L620:
	mov	r3, #0
	str	r3, [fp, #-1928]
	mov	r3, #0
	str	r3, [fp, #-1924]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-1928]
	ldr	r3, [fp, #-1924]
	mov	r8, #0
	mov	r9, #0
	mov	r0, r2
	asr	r1, r0, #31
	mov	r4, r3
	asr	r5, r4, #31
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r8
	mov	r3, r9
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1920]
	ldr	r3, [fp, #-1920]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #312
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1920]
	cmp	r3, #0
	bne	.L621
	ldr	r2, [fp, #-1928]
	ldr	r3, [fp, #-1924]
	mul	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #312
	mov	r0, r3
	bl	runtime_assert
.L621:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-540]
	str	r3, [fp, #-536]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-532]
	str	r3, [fp, #-528]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #540
	ldmia	r7, {r6-r7}
	sub	r9, fp, #532
	ldmia	r9, {r8-r9}
	mov	r3, #0
	mov	r4, #0
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
	mov	r4, #0
	mov	r5, #0
	mov	r4, r7
	asr	r5, r7, #31
	asr	r2, r6, #31
	mov	r0, #0
	mov	r1, #0
	mov	r0, r9
	asr	r1, r9, #31
	asr	r3, r8, #31
	cmp	r2, r4
	bne	.L624
	cmp	r3, r0
	bne	.L625
	smull	r2, r3, r6, r8
	str	r2, [fp, #-3916]
	str	r3, [fp, #-3912]
	b	.L622
.L625:
	str	r8, [fp, #-3972]
	str	r9, [fp, #-3968]
	mov	r1, r0
	mov	ip, r6
	b	.L626
.L624:
	cmp	r3, r0
	bne	.L627
	str	r6, [fp, #-3972]
	str	r7, [fp, #-3968]
	mov	r1, r4
	mov	ip, r8
.L626:
	umull	r3, r4, r6, r8
	str	r3, [fp, #-3980]
	str	r4, [fp, #-3976]
	umull	r2, r3, ip, r1
	mov	r4, r2
	mov	r5, r3
	cmp	r1, #0
	bge	.L628
	mov	r2, ip
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	subs	r3, r4, r0
	sub	r2, fp, #4416
	sub	r2, r2, #44
	str	r3, [r2]
	sbc	r3, r5, r1
	sub	r2, fp, #4416
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #44
	ldmia	r3, {r4-r5}
.L628:
	cmp	ip, #0
	bge	.L629
	ldr	r2, [fp, #-3972]
	ldr	r3, [fp, #-3968]
	mov	r1, r2
	subs	r1, r4, r1
	sub	r0, fp, #4416
	sub	r0, r0, #52
	str	r1, [r0]
	sbc	r3, r5, r3
	sub	r2, fp, #4416
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #52
	ldmia	r3, {r4-r5}
.L629:
	mov	r2, #0
	mov	r3, #0
	ldr	r1, [fp, #-3976]
	mov	r2, r1
	mov	r3, #0
	adds	r1, r4, r2
	sub	r0, fp, #4416
	sub	r0, r0, #60
	str	r1, [r0]
	adc	r3, r5, r3
	sub	r2, fp, #4416
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #4416
	sub	r3, r3, #60
	ldmia	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	bne	.L630
	mov	r0, #0
	mov	r1, #0
	mov	r1, r4
	mov	r0, #0
	ldr	r2, [fp, #-3980]
	mov	r3, #0
	orr	ip, r0, r2
	str	ip, [fp, #-3916]
	orr	r3, r1, r3
	str	r3, [fp, #-3912]
	b	.L622
.L627:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	ip, r2, r3
	umull	r2, r3, r6, r8
	mov	r6, r2
	mov	r7, r3
	add	r3, ip, r3
	mov	r7, r3
	str	r6, [fp, #-3916]
	str	r7, [fp, #-3912]
	add	r3, r4, #1
	cmp	r3, #1
	bhi	.L623
	add	r3, r0, #1
	cmp	r3, #1
	bhi	.L623
	cmp	r4, r0
	bne	.L631
	cmp	r6, #1
	sbcs	r3, r7, #0
	blt	.L623
	b	.L622
.L631:
	ldr	r3, [fp, #-3916]
	ldr	r4, [fp, #-3912]
	cmp	r3, #0
	sbcs	r3, r4, #0
	bge	.L623
	b	.L622
.L630:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	r3, r2, r3
	umull	r0, r1, r6, r8
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3916]
	str	r1, [fp, #-3912]
.L623:
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
.L622:
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1916]
	ldr	r3, [fp, #-1916]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+32
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1916]
	cmp	r3, #0
	bne	.L632
	sub	r1, fp, #540
	ldmia	r1, {r0-r1}
	sub	r5, fp, #532
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+32
	mov	r0, r3
	bl	runtime_assert
.L632:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-524]
	str	r3, [fp, #-520]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-516]
	str	r3, [fp, #-512]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #524
	ldmia	r7, {r6-r7}
	sub	r9, fp, #516
	ldmia	r9, {r8-r9}
	mov	r3, #0
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
	mov	r4, #0
	mov	r5, #0
	mov	r4, r7
	asr	r5, r7, #31
	asr	r2, r6, #31
	mov	r0, #0
	mov	r1, #0
	mov	r0, r9
	asr	r1, r9, #31
	asr	r3, r8, #31
	cmp	r2, r4
	bne	.L635
	cmp	r3, r0
	bne	.L636
	smull	r2, r3, r6, r8
	str	r2, [fp, #-3924]
	str	r3, [fp, #-3920]
	b	.L633
.L636:
	str	r8, [fp, #-3964]
	str	r9, [fp, #-3960]
	mov	r1, r0
	mov	ip, r6
	b	.L637
.L635:
	cmp	r3, r0
	bne	.L638
	str	r6, [fp, #-3964]
	str	r7, [fp, #-3960]
	mov	r1, r4
	mov	ip, r8
.L637:
	umull	r3, r4, r6, r8
	str	r3, [fp, #-3972]
	str	r4, [fp, #-3968]
	umull	r2, r3, ip, r1
	mov	r4, r2
	mov	r5, r3
	cmp	r1, #0
	bge	.L639
	mov	r2, ip
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	subs	r3, r4, r0
	sub	r2, fp, #4480
	sub	r2, r2, #4
	str	r3, [r2]
	sbc	r3, r5, r1
	sub	r2, fp, #4480
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #4
	ldmia	r3, {r4-r5}
.L639:
	cmp	ip, #0
	bge	.L640
	ldr	r2, [fp, #-3964]
	ldr	r3, [fp, #-3960]
	mov	r1, r2
	subs	r1, r4, r1
	sub	r0, fp, #4480
	sub	r0, r0, #12
	str	r1, [r0]
	sbc	r3, r5, r3
	sub	r2, fp, #4480
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #12
	ldmia	r3, {r4-r5}
.L640:
	mov	r2, #0
	mov	r3, #0
	ldr	r1, [fp, #-3968]
	mov	r2, r1
	mov	r3, #0
	adds	r1, r4, r2
	sub	r0, fp, #4480
	sub	r0, r0, #20
	str	r1, [r0]
	adc	r3, r5, r3
	sub	r2, fp, #4480
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #20
	ldmia	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	bne	.L641
	mov	r0, #0
	mov	r1, #0
	mov	r1, r4
	mov	r0, #0
	ldr	r2, [fp, #-3972]
	mov	r3, #0
	orr	ip, r0, r2
	str	ip, [fp, #-3924]
	orr	r3, r1, r3
	str	r3, [fp, #-3920]
	b	.L633
.L638:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	ip, r2, r3
	umull	r2, r3, r6, r8
	mov	r6, r2
	mov	r7, r3
	add	r3, ip, r3
	mov	r7, r3
	str	r6, [fp, #-3924]
	str	r7, [fp, #-3920]
	add	r3, r4, #1
	cmp	r3, #1
	bhi	.L634
	add	r3, r0, #1
	cmp	r3, #1
	bhi	.L634
	cmp	r4, r0
	bne	.L642
	cmp	r6, #1
	sbcs	r3, r7, #0
	blt	.L634
	b	.L633
.L642:
	ldr	r3, [fp, #-3924]
	ldr	r4, [fp, #-3920]
	cmp	r3, #0
	sbcs	r3, r4, #0
	bge	.L634
	b	.L633
.L641:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	r3, r2, r3
	umull	r0, r1, r6, r8
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3924]
	str	r1, [fp, #-3920]
.L634:
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L633:
	ldr	r2, [fp, #-3924]
	ldr	r3, [fp, #-3920]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1912]
	ldr	r3, [fp, #-1912]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+36
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1912]
	cmp	r3, #0
	bne	.L643
	sub	r1, fp, #524
	ldmia	r1, {r0-r1}
	sub	r5, fp, #516
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+36
	mov	r0, r3
	bl	runtime_assert
.L643:
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-508]
	str	r3, [fp, #-504]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-500]
	str	r3, [fp, #-496]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #508
	ldmia	r7, {r6-r7}
	sub	r9, fp, #500
	ldmia	r9, {r8-r9}
	mov	r3, #0
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
	mov	r4, #0
	mov	r5, #0
	mov	r4, r7
	asr	r5, r7, #31
	asr	r2, r6, #31
	mov	r0, #0
	mov	r1, #0
	mov	r0, r9
	asr	r1, r9, #31
	asr	r3, r8, #31
	cmp	r2, r4
	bne	.L646
	cmp	r3, r0
	bne	.L647
	smull	r2, r3, r6, r8
	str	r2, [fp, #-3932]
	str	r3, [fp, #-3928]
	b	.L644
.L647:
	str	r8, [fp, #-3924]
	str	r9, [fp, #-3920]
	mov	r1, r0
	mov	ip, r6
	b	.L648
.L1050:
	.align	2
.L1049:
	.word	299
	.word	301
	.word	302
	.word	305
	.word	306
	.word	307
	.word	309
	.word	310
	.word	313
	.word	314
	.word	315
	.word	317
	.word	318
	.word	321
	.word	322
	.word	323
.L646:
	cmp	r3, r0
	bne	.L649
	str	r6, [fp, #-3924]
	str	r7, [fp, #-3920]
	mov	r1, r4
	mov	ip, r8
.L648:
	umull	r3, r4, r6, r8
	str	r3, [fp, #-3964]
	str	r4, [fp, #-3960]
	umull	r2, r3, ip, r1
	mov	r4, r2
	mov	r5, r3
	cmp	r1, #0
	bge	.L650
	mov	r2, ip
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	subs	r3, r4, r0
	sub	r2, fp, #4480
	sub	r2, r2, #28
	str	r3, [r2]
	sbc	r3, r5, r1
	sub	r2, fp, #4480
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #28
	ldmia	r3, {r4-r5}
.L650:
	cmp	ip, #0
	bge	.L651
	ldr	r2, [fp, #-3924]
	ldr	r3, [fp, #-3920]
	mov	r1, r2
	subs	r1, r4, r1
	sub	r0, fp, #4480
	sub	r0, r0, #36
	str	r1, [r0]
	sbc	r3, r5, r3
	sub	r2, fp, #4480
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #36
	ldmia	r3, {r4-r5}
.L651:
	mov	r2, #0
	mov	r3, #0
	ldr	r1, [fp, #-3960]
	mov	r2, r1
	mov	r3, #0
	adds	r1, r4, r2
	sub	r0, fp, #4480
	sub	r0, r0, #44
	str	r1, [r0]
	adc	r3, r5, r3
	sub	r2, fp, #4480
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #44
	ldmia	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	bne	.L652
	mov	r0, #0
	mov	r1, #0
	mov	r1, r4
	mov	r0, #0
	ldr	r2, [fp, #-3964]
	mov	r3, #0
	orr	ip, r0, r2
	str	ip, [fp, #-3932]
	orr	r3, r1, r3
	str	r3, [fp, #-3928]
	b	.L644
.L649:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	ip, r2, r3
	umull	r2, r3, r6, r8
	mov	r6, r2
	mov	r7, r3
	add	r3, ip, r3
	mov	r7, r3
	str	r6, [fp, #-3932]
	str	r7, [fp, #-3928]
	add	r3, r4, #1
	cmp	r3, #1
	bhi	.L645
	add	r3, r0, #1
	cmp	r3, #1
	bhi	.L645
	cmp	r4, r0
	bne	.L653
	cmp	r6, #1
	sbcs	r3, r7, #0
	blt	.L645
	b	.L644
.L653:
	ldr	r3, [fp, #-3932]
	ldr	r4, [fp, #-3928]
	cmp	r3, #0
	sbcs	r3, r4, #0
	bge	.L645
	b	.L644
.L652:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	r3, r2, r3
	umull	r0, r1, r6, r8
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3932]
	str	r1, [fp, #-3928]
.L645:
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L644:
	ldr	r2, [fp, #-3932]
	ldr	r3, [fp, #-3928]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1908]
	ldr	r3, [fp, #-1908]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+40
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1908]
	cmp	r3, #0
	bne	.L654
	sub	r1, fp, #508
	ldmia	r1, {r0-r1}
	sub	r5, fp, #500
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+40
	mov	r0, r3
	bl	runtime_assert
.L654:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-492]
	str	r3, [fp, #-488]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-484]
	str	r3, [fp, #-480]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #492
	ldmia	r7, {r6-r7}
	sub	r9, fp, #484
	ldmia	r9, {r8-r9}
	mov	r3, #0
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
	mov	r4, #0
	mov	r5, #0
	mov	r4, r7
	asr	r5, r7, #31
	asr	r2, r6, #31
	mov	r0, #0
	mov	r1, #0
	mov	r0, r9
	asr	r1, r9, #31
	asr	r3, r8, #31
	cmp	r2, r4
	bne	.L657
	cmp	r3, r0
	bne	.L658
	smull	r2, r3, r6, r8
	str	r2, [fp, #-3940]
	str	r3, [fp, #-3936]
	b	.L655
.L658:
	str	r8, [fp, #-3924]
	str	r9, [fp, #-3920]
	mov	r1, r0
	mov	ip, r6
	b	.L659
.L657:
	cmp	r3, r0
	bne	.L660
	str	r6, [fp, #-3924]
	str	r7, [fp, #-3920]
	mov	r1, r4
	mov	ip, r8
.L659:
	umull	r3, r4, r6, r8
	str	r3, [fp, #-3932]
	str	r4, [fp, #-3928]
	umull	r2, r3, ip, r1
	mov	r4, r2
	mov	r5, r3
	cmp	r1, #0
	bge	.L661
	mov	r2, ip
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	subs	r3, r4, r0
	sub	r2, fp, #4480
	sub	r2, r2, #52
	str	r3, [r2]
	sbc	r3, r5, r1
	sub	r2, fp, #4480
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #52
	ldmia	r3, {r4-r5}
.L661:
	cmp	ip, #0
	bge	.L662
	ldr	r2, [fp, #-3924]
	ldr	r3, [fp, #-3920]
	mov	r1, r2
	subs	r1, r4, r1
	sub	r0, fp, #4480
	sub	r0, r0, #60
	str	r1, [r0]
	sbc	r3, r5, r3
	sub	r2, fp, #4480
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #4480
	sub	r3, r3, #60
	ldmia	r3, {r4-r5}
.L662:
	mov	r2, #0
	mov	r3, #0
	ldr	r1, [fp, #-3928]
	mov	r2, r1
	mov	r3, #0
	adds	r1, r4, r2
	sub	r0, fp, #4544
	sub	r0, r0, #4
	str	r1, [r0]
	adc	r3, r5, r3
	sub	r2, fp, #4544
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #4
	ldmia	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	bne	.L663
	mov	r0, #0
	mov	r1, #0
	mov	r1, r4
	mov	r0, #0
	ldr	r2, [fp, #-3932]
	mov	r3, #0
	orr	ip, r0, r2
	str	ip, [fp, #-3940]
	orr	r3, r1, r3
	str	r3, [fp, #-3936]
	b	.L655
.L660:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	ip, r2, r3
	umull	r2, r3, r6, r8
	mov	r6, r2
	mov	r7, r3
	add	r3, ip, r3
	mov	r7, r3
	str	r6, [fp, #-3940]
	str	r7, [fp, #-3936]
	add	r3, r4, #1
	cmp	r3, #1
	bhi	.L656
	add	r3, r0, #1
	cmp	r3, #1
	bhi	.L656
	cmp	r4, r0
	bne	.L664
	cmp	r6, #1
	sbcs	r3, r7, #0
	blt	.L656
	b	.L655
.L664:
	ldr	r3, [fp, #-3940]
	ldr	r4, [fp, #-3936]
	cmp	r3, #0
	sbcs	r3, r4, #0
	bge	.L656
	b	.L655
.L663:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	r3, r2, r3
	umull	r0, r1, r6, r8
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3940]
	str	r1, [fp, #-3936]
.L656:
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L655:
	ldr	r2, [fp, #-3940]
	ldr	r3, [fp, #-3936]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1904]
	ldr	r3, [fp, #-1904]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #316
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1904]
	cmp	r3, #0
	bne	.L665
	sub	r1, fp, #492
	ldmia	r1, {r0-r1}
	sub	r5, fp, #484
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #316
	mov	r0, r3
	bl	runtime_assert
.L665:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-476]
	str	r3, [fp, #-472]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-468]
	str	r3, [fp, #-464]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #476
	ldmia	r7, {r6-r7}
	sub	r9, fp, #468
	ldmia	r9, {r8-r9}
	mov	r3, #0
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
	mov	r4, #0
	mov	r5, #0
	mov	r4, r7
	asr	r5, r7, #31
	asr	r2, r6, #31
	mov	r0, #0
	mov	r1, #0
	mov	r0, r9
	asr	r1, r9, #31
	asr	r3, r8, #31
	cmp	r2, r4
	bne	.L668
	cmp	r3, r0
	bne	.L669
	smull	r2, r3, r6, r8
	str	r2, [fp, #-3948]
	str	r3, [fp, #-3944]
	b	.L666
.L669:
	str	r8, [fp, #-3924]
	str	r9, [fp, #-3920]
	mov	r1, r0
	mov	ip, r6
	b	.L670
.L668:
	cmp	r3, r0
	bne	.L671
	str	r6, [fp, #-3924]
	str	r7, [fp, #-3920]
	mov	r1, r4
	mov	ip, r8
.L670:
	umull	r3, r4, r6, r8
	str	r3, [fp, #-3932]
	str	r4, [fp, #-3928]
	umull	r2, r3, ip, r1
	mov	r4, r2
	mov	r5, r3
	cmp	r1, #0
	bge	.L672
	mov	r2, ip
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	subs	r3, r4, r0
	sub	r2, fp, #4544
	sub	r2, r2, #12
	str	r3, [r2]
	sbc	r3, r5, r1
	sub	r2, fp, #4544
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #12
	ldmia	r3, {r4-r5}
.L672:
	cmp	ip, #0
	bge	.L673
	ldr	r2, [fp, #-3924]
	ldr	r3, [fp, #-3920]
	mov	r1, r2
	subs	r1, r4, r1
	sub	r0, fp, #4544
	sub	r0, r0, #20
	str	r1, [r0]
	sbc	r3, r5, r3
	sub	r2, fp, #4544
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #20
	ldmia	r3, {r4-r5}
.L673:
	mov	r2, #0
	mov	r3, #0
	ldr	r1, [fp, #-3928]
	mov	r2, r1
	mov	r3, #0
	adds	r1, r4, r2
	sub	r0, fp, #4544
	sub	r0, r0, #28
	str	r1, [r0]
	adc	r3, r5, r3
	sub	r2, fp, #4544
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #28
	ldmia	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	bne	.L674
	mov	r0, #0
	mov	r1, #0
	mov	r1, r4
	mov	r0, #0
	ldr	r2, [fp, #-3932]
	mov	r3, #0
	orr	ip, r0, r2
	str	ip, [fp, #-3948]
	orr	r3, r1, r3
	str	r3, [fp, #-3944]
	b	.L666
.L671:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	ip, r2, r3
	umull	r2, r3, r6, r8
	mov	r6, r2
	mov	r7, r3
	add	r3, ip, r3
	mov	r7, r3
	str	r6, [fp, #-3948]
	str	r7, [fp, #-3944]
	add	r3, r4, #1
	cmp	r3, #1
	bhi	.L667
	add	r3, r0, #1
	cmp	r3, #1
	bhi	.L667
	cmp	r4, r0
	bne	.L675
	cmp	r6, #1
	sbcs	r3, r7, #0
	blt	.L667
	b	.L666
.L675:
	ldr	r3, [fp, #-3948]
	ldr	r4, [fp, #-3944]
	cmp	r3, #0
	sbcs	r3, r4, #0
	bge	.L667
	b	.L666
.L674:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	r3, r2, r3
	umull	r0, r1, r6, r8
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3948]
	str	r1, [fp, #-3944]
.L667:
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L666:
	ldr	r2, [fp, #-3948]
	ldr	r3, [fp, #-3944]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1900]
	ldr	r3, [fp, #-1900]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+44
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1900]
	cmp	r3, #0
	bne	.L676
	sub	r1, fp, #476
	ldmia	r1, {r0-r1}
	sub	r5, fp, #468
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+44
	mov	r0, r3
	bl	runtime_assert
.L676:
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-460]
	str	r3, [fp, #-456]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-452]
	str	r3, [fp, #-448]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #460
	ldmia	r7, {r6-r7}
	sub	r9, fp, #452
	ldmia	r9, {r8-r9}
	mov	r3, #0
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
	mov	r4, #0
	mov	r5, #0
	mov	r4, r7
	asr	r5, r7, #31
	asr	r2, r6, #31
	mov	r0, #0
	mov	r1, #0
	mov	r0, r9
	asr	r1, r9, #31
	asr	r3, r8, #31
	cmp	r2, r4
	bne	.L679
	cmp	r3, r0
	bne	.L680
	smull	r2, r3, r6, r8
	str	r2, [fp, #-3956]
	str	r3, [fp, #-3952]
	b	.L677
.L680:
	str	r8, [fp, #-3924]
	str	r9, [fp, #-3920]
	mov	r1, r0
	mov	ip, r6
	b	.L681
.L679:
	cmp	r3, r0
	bne	.L682
	str	r6, [fp, #-3924]
	str	r7, [fp, #-3920]
	mov	r1, r4
	mov	ip, r8
.L681:
	umull	r3, r4, r6, r8
	str	r3, [fp, #-3932]
	str	r4, [fp, #-3928]
	umull	r2, r3, ip, r1
	mov	r4, r2
	mov	r5, r3
	cmp	r1, #0
	bge	.L683
	mov	r2, ip
	mov	r3, #0
	mov	r0, #0
	mov	r1, #0
	mov	r1, r2
	mov	r0, #0
	subs	r3, r4, r0
	sub	r2, fp, #4544
	sub	r2, r2, #36
	str	r3, [r2]
	sbc	r3, r5, r1
	sub	r2, fp, #4544
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #36
	ldmia	r3, {r4-r5}
.L683:
	cmp	ip, #0
	bge	.L684
	ldr	r2, [fp, #-3924]
	ldr	r3, [fp, #-3920]
	mov	r1, r2
	subs	r1, r4, r1
	sub	r0, fp, #4544
	sub	r0, r0, #44
	str	r1, [r0]
	sbc	r3, r5, r3
	sub	r2, fp, #4544
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #44
	ldmia	r3, {r4-r5}
.L684:
	mov	r2, #0
	mov	r3, #0
	ldr	r1, [fp, #-3928]
	mov	r2, r1
	mov	r3, #0
	adds	r1, r4, r2
	sub	r0, fp, #4544
	sub	r0, r0, #52
	str	r1, [r0]
	adc	r3, r5, r3
	sub	r2, fp, #4544
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #52
	ldmia	r3, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	bne	.L685
	mov	r0, #0
	mov	r1, #0
	mov	r1, r4
	mov	r0, #0
	ldr	r2, [fp, #-3932]
	mov	r3, #0
	orr	ip, r0, r2
	str	ip, [fp, #-3956]
	orr	r3, r1, r3
	str	r3, [fp, #-3952]
	b	.L677
.L682:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	ip, r2, r3
	umull	r2, r3, r6, r8
	mov	r6, r2
	mov	r7, r3
	add	r3, ip, r3
	mov	r7, r3
	str	r6, [fp, #-3956]
	str	r7, [fp, #-3952]
	add	r3, r4, #1
	cmp	r3, #1
	bhi	.L678
	add	r3, r0, #1
	cmp	r3, #1
	bhi	.L678
	cmp	r4, r0
	bne	.L686
	cmp	r6, #1
	sbcs	r3, r7, #0
	blt	.L678
	b	.L677
.L686:
	ldr	r3, [fp, #-3956]
	ldr	r4, [fp, #-3952]
	cmp	r3, #0
	sbcs	r3, r4, #0
	bge	.L678
	b	.L677
.L685:
	mul	r2, r8, r7
	mul	r3, r6, r9
	add	r3, r2, r3
	umull	r0, r1, r6, r8
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-3956]
	str	r1, [fp, #-3952]
.L678:
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L677:
	ldr	r2, [fp, #-3956]
	ldr	r3, [fp, #-3952]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1896]
	ldr	r3, [fp, #-1896]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+48
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1896]
	cmp	r3, #0
	bne	.L687
	sub	r1, fp, #460
	ldmia	r1, {r0-r1}
	sub	r5, fp, #452
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+48
	mov	r0, r3
	bl	runtime_assert
.L687:
	mov	r3, #0
	str	r3, [fp, #-1892]
	mov	r3, #0
	str	r3, [fp, #-1888]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-1892]
	ldr	r2, [fp, #-1888]
	mov	r3, #0
	mov	r0, r3
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L688
	mov	r3, #1
	mov	r0, r3
.L688:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L690
	mov	r3, #1
	mov	r0, r3
.L690:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1884]
	ldr	r3, [fp, #-1884]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #320
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1884]
	cmp	r3, #0
	bne	.L691
	ldr	r2, [fp, #-1892]
	ldr	r3, [fp, #-1888]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #320
	mov	r0, r3
	bl	runtime_assert
.L691:
	mov	r3, #0
	str	r3, [fp, #-1880]
	mov	r3, #255
	str	r3, [fp, #-1876]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-1880]
	ldr	r2, [fp, #-1876]
	mov	r3, #0
	mov	r0, r3
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L692
	mov	r3, #1
	mov	r0, r3
.L692:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L694
	mov	r3, #1
	mov	r0, r3
.L694:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1872]
	ldr	r3, [fp, #-1872]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+52
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1872]
	cmp	r3, #0
	bne	.L695
	ldr	r2, [fp, #-1880]
	ldr	r3, [fp, #-1876]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+52
	mov	r0, r3
	bl	runtime_assert
.L695:
	mov	r3, #1
	str	r3, [fp, #-1868]
	mov	r3, #255
	str	r3, [fp, #-1864]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-1868]
	ldr	r2, [fp, #-1864]
	mov	r3, #0
	mov	r0, r3
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L696
	mov	r3, #1
	mov	r0, r3
.L696:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L698
	mov	r3, #1
	mov	r0, r3
.L698:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1860]
	ldr	r3, [fp, #-1860]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+56
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1860]
	cmp	r3, #0
	bne	.L699
	ldr	r2, [fp, #-1868]
	ldr	r3, [fp, #-1864]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+56
	mov	r0, r3
	bl	runtime_assert
.L699:
	mov	r3, #255
	str	r3, [fp, #-1856]
	mov	r3, #255
	str	r3, [fp, #-1852]
	mov	r3, #0
	strb	r3, [fp, #-44]
	ldr	r1, [fp, #-1856]
	ldr	r2, [fp, #-1852]
	mov	r3, #0
	mov	r0, r3
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L700
	mov	r3, #1
	mov	r0, r3
.L700:
	mov	r2, r4
	and	r3, r2, #255
	cmp	r3, r4
	beq	.L702
	mov	r3, #1
	mov	r0, r3
.L702:
	mov	r3, r2
	and	r3, r3, #255
	strb	r3, [fp, #-44]
	and	r3, r0, #255
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1848]
	ldr	r3, [fp, #-1848]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+60
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1848]
	cmp	r3, #0
	bne	.L703
	ldr	r2, [fp, #-1856]
	ldr	r3, [fp, #-1852]
	mul	r2, r3, r2
	ldrb	r3, [fp, #-44]	@ zero_extendqisi2
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1049+60
	mov	r0, r3
	bl	runtime_assert
.L703:
	mov	r3, #0
	str	r3, [fp, #-1844]
	mov	r3, #0
	str	r3, [fp, #-1840]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-1844]
	ldr	r2, [fp, #-1840]
	mov	r3, #0
	mov	r0, r3	@ movhi
	smull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	asr	r3, r5, #31
	asr	r1, r4, #31
	cmp	r1, r2
	beq	.L704
	mov	r3, #1
	mov	r0, r3	@ movhi
.L704:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L706
	mov	r3, #1
	mov	r0, r3	@ movhi
.L706:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1836]
	ldr	r3, [fp, #-1836]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1836]
	cmp	r3, #0
	bne	.L707
	ldr	r2, [fp, #-1844]
	ldr	r3, [fp, #-1840]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051
	mov	r0, r3
	bl	runtime_assert
.L707:
	mov	r3, #0
	str	r3, [fp, #-1832]
	ldr	r3, .L1051+4
	str	r3, [fp, #-1828]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-1832]
	ldr	r2, [fp, #-1828]
	mov	r3, #0
	mov	r0, r3	@ movhi
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L708
	mov	r3, #1
	mov	r0, r3	@ movhi
.L708:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L710
	mov	r3, #1
	mov	r0, r3	@ movhi
.L710:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1824]
	ldr	r3, [fp, #-1824]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+8
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1824]
	cmp	r3, #0
	bne	.L711
	ldr	r2, [fp, #-1832]
	ldr	r3, [fp, #-1828]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+8
	mov	r0, r3
	bl	runtime_assert
.L711:
	mov	r3, #1
	str	r3, [fp, #-1820]
	ldr	r3, .L1051+4
	str	r3, [fp, #-1816]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-1820]
	ldr	r2, [fp, #-1816]
	mov	r3, #0
	mov	r0, r3	@ movhi
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L712
	mov	r3, #1
	mov	r0, r3	@ movhi
.L712:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L714
	mov	r3, #1
	mov	r0, r3	@ movhi
.L714:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1812]
	ldr	r3, [fp, #-1812]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+12
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1812]
	cmp	r3, #0
	bne	.L715
	ldr	r2, [fp, #-1820]
	ldr	r3, [fp, #-1816]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+12
	mov	r0, r3
	bl	runtime_assert
.L715:
	ldr	r3, .L1051+4
	str	r3, [fp, #-1808]
	ldr	r3, .L1051+4
	str	r3, [fp, #-1804]
	mov	r3, #0
	strh	r3, [fp, #-44]	@ movhi
	ldr	r1, [fp, #-1808]
	ldr	r2, [fp, #-1804]
	mov	r3, #0
	mov	r0, r3	@ movhi
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L716
	mov	r3, #1
	mov	r0, r3	@ movhi
.L716:
	mov	r2, r4	@ movhi
	lsl	r3, r2, #16
	lsr	r3, r3, #16
	cmp	r3, r4
	beq	.L718
	mov	r3, #1
	mov	r0, r3	@ movhi
.L718:
	mov	r3, r2	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-44]	@ movhi
	lsl	r3, r0, #16
	lsr	r3, r3, #16
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1800]
	ldr	r3, [fp, #-1800]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #328
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1800]
	cmp	r3, #0
	bne	.L719
	ldr	r2, [fp, #-1808]
	ldr	r3, [fp, #-1804]
	mul	r2, r3, r2
	ldrh	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #328
	mov	r0, r3
	bl	runtime_assert
.L719:
	mov	r3, #0
	str	r3, [fp, #-1796]
	mov	r3, #0
	str	r3, [fp, #-1792]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1796]
	ldr	r3, [fp, #-1792]
	mov	r0, #0
	mov	r1, r2
	mov	r2, r3
	and	r3, r1, r2
	cmp	r3, #0
	bge	.L723
	rsb	r3, r1, #0
	mov	r1, r3
	rsb	r3, r2, #0
	mov	r2, r3
	b	.L722
.L723:
	eor	r3, r1, r2
	cmp	r3, #0
	bge	.L722
	cmp	r1, #0
	beq	.L722
	cmp	r2, #0
	beq	.L722
	mov	r0, #1
.L722:
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L720
	mov	r0, #1
.L720:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1788]
	ldr	r3, [fp, #-1788]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+16
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1788]
	cmp	r3, #0
	bne	.L724
	ldr	r2, [fp, #-1796]
	ldr	r3, [fp, #-1792]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+16
	mov	r0, r3
	bl	runtime_assert
.L724:
	mov	r3, #0
	str	r3, [fp, #-1784]
	mvn	r3, #0
	str	r3, [fp, #-1780]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1784]
	ldr	r3, [fp, #-1780]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L725
	mov	ip, #1
.L725:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1776]
	ldr	r3, [fp, #-1776]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+20
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1776]
	cmp	r3, #0
	bne	.L727
	ldr	r2, [fp, #-1784]
	ldr	r3, [fp, #-1780]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+20
	mov	r0, r3
	bl	runtime_assert
.L727:
	mov	r3, #1
	str	r3, [fp, #-1772]
	mvn	r3, #0
	str	r3, [fp, #-1768]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1772]
	ldr	r3, [fp, #-1768]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L728
	mov	ip, #1
.L728:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1764]
	ldr	r3, [fp, #-1764]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #332
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1764]
	cmp	r3, #0
	bne	.L730
	ldr	r2, [fp, #-1772]
	ldr	r3, [fp, #-1768]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #332
	mov	r0, r3
	bl	runtime_assert
.L730:
	mvn	r3, #0
	str	r3, [fp, #-1760]
	mvn	r3, #0
	str	r3, [fp, #-1756]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1760]
	ldr	r3, [fp, #-1756]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L731
	mov	ip, #1
.L731:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1752]
	ldr	r3, [fp, #-1752]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+24
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1752]
	cmp	r3, #0
	bne	.L733
	ldr	r2, [fp, #-1760]
	ldr	r3, [fp, #-1756]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+24
	mov	r0, r3
	bl	runtime_assert
.L733:
	mov	r3, #0
	str	r3, [fp, #-1748]
	mov	r3, #0
	str	r3, [fp, #-1744]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1748]
	ldr	r3, [fp, #-1744]
	mov	r0, #0
	mov	r1, r2
	mov	r2, r3
	and	r3, r1, r2
	cmp	r3, #0
	bge	.L737
	rsb	r3, r1, #0
	mov	r1, r3
	rsb	r3, r2, #0
	mov	r2, r3
	b	.L736
.L737:
	eor	r3, r1, r2
	cmp	r3, #0
	bge	.L736
	cmp	r1, #0
	beq	.L736
	cmp	r2, #0
	beq	.L736
	mov	r0, #1
.L736:
	umull	r4, r5, r1, r2
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r2, #0
	beq	.L734
	mov	r0, #1
.L734:
	mov	r3, r4
	str	r3, [fp, #-44]
	mov	r3, r0
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1740]
	ldr	r3, [fp, #-1740]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+28
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1740]
	cmp	r3, #0
	bne	.L738
	ldr	r2, [fp, #-1748]
	ldr	r3, [fp, #-1744]
	mul	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+28
	mov	r0, r3
	bl	runtime_assert
.L738:
	mov	r3, #0
	str	r3, [fp, #-1736]
	mvn	r3, #0
	str	r3, [fp, #-1732]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1736]
	ldr	r3, [fp, #-1732]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L739
	mov	ip, #1
.L739:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1728]
	ldr	r3, [fp, #-1728]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #336
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1728]
	cmp	r3, #0
	bne	.L741
	ldr	r2, [fp, #-1736]
	ldr	r3, [fp, #-1732]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #336
	mov	r0, r3
	bl	runtime_assert
.L741:
	mov	r3, #1
	str	r3, [fp, #-1724]
	mvn	r3, #0
	str	r3, [fp, #-1720]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1724]
	ldr	r3, [fp, #-1720]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L742
	mov	ip, #1
.L742:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1716]
	ldr	r3, [fp, #-1716]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+32
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1716]
	cmp	r3, #0
	bne	.L744
	ldr	r2, [fp, #-1724]
	ldr	r3, [fp, #-1720]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+32
	mov	r0, r3
	bl	runtime_assert
.L744:
	mvn	r3, #0
	str	r3, [fp, #-1712]
	mvn	r3, #0
	str	r3, [fp, #-1708]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1712]
	ldr	r3, [fp, #-1708]
	mov	ip, #0
	umull	r0, r1, r2, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	mov	r3, #0
	cmp	r2, #0
	beq	.L745
	mov	ip, #1
.L745:
	mov	r3, r0
	str	r3, [fp, #-44]
	mov	r3, ip
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1704]
	ldr	r3, [fp, #-1704]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+36
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1704]
	cmp	r3, #0
	bne	.L747
	ldr	r2, [fp, #-1712]
	ldr	r3, [fp, #-1708]
	mul	r2, r3, r2
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+36
	mov	r0, r3
	bl	runtime_assert
.L747:
	mov	r3, #0
	str	r3, [fp, #-1700]
	mov	r3, #0
	str	r3, [fp, #-1696]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-1700]
	ldr	r3, [fp, #-1696]
	mov	r0, r2
	asr	r1, r0, #31
	mov	r2, r3
	asr	r3, r2, #31
	mov	r4, #0
	mov	r5, #0
	str	r4, [fp, #-3916]
	str	r5, [fp, #-3912]
	mov	r6, r0
	mov	r7, r1
	mov	r4, r2
	mov	r5, r3
	and	r3, r6, r4
	sub	r2, fp, #4544
	sub	r2, r2, #60
	str	r3, [r2]
	and	r3, r7, r5
	sub	r2, fp, #4544
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #4544
	sub	r3, r3, #60
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L751
	rsbs	r2, r6, #0
	rsc	r3, r7, #0
	mov	r6, r2
	mov	r7, r3
	rsbs	r2, r4, #0
	rsc	r3, r5, #0
	mov	r4, r2
	mov	r5, r3
	b	.L750
.L751:
	eor	r3, r6, r4
	sub	r2, fp, #4608
	sub	r2, r2, #4
	str	r3, [r2]
	eor	r3, r7, r5
	sub	r2, fp, #4608
	str	r3, [r2]
	sub	r3, fp, #4608
	sub	r3, r3, #4
	ldmia	r3, {r2-r3}
	cmp	r2, #0
	sbcs	r3, r3, #0
	bge	.L750
	orrs	r3, r6, r7
	beq	.L750
	orrs	r3, r4, r5
	beq	.L750
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-3916]
	str	r3, [fp, #-3912]
.L750:
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L752
	cmp	r2, #0
	bne	.L753
	umull	r2, r3, r6, r4
	str	r2, [fp, #-4012]
	str	r3, [fp, #-4008]
	b	.L748
.L753:
	mov	r0, r2
	mov	r1, r6
	b	.L754
.L752:
	cmp	r2, #0
	bne	.L755
	mov	r1, r4
.L754:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4608
	sub	lr, lr, #12
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4608
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #4608
	sub	r3, r3, #12
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L756
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-4012]
	orr	r3, r5, r3
	str	r3, [fp, #-4008]
	b	.L748
.L755:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L756:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-4012]
	str	r1, [fp, #-4008]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L748:
	ldr	r2, [fp, #-4012]
	ldr	r3, [fp, #-4008]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1692]
	ldr	r3, [fp, #-1692]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #340
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1692]
	cmp	r3, #0
	bne	.L757
	ldr	r2, [fp, #-1700]
	ldr	r3, [fp, #-1696]
	mul	r3, r2, r3
	mov	r0, r3
	asr	r1, r0, #31
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #340
	mov	r0, r3
	bl	runtime_assert
.L757:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-444]
	str	r3, [fp, #-440]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-436]
	str	r3, [fp, #-432]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #444
	ldmia	r7, {r6-r7}
	sub	r5, fp, #436
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-3916]
	str	r3, [fp, #-3912]
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L760
	cmp	r2, #0
	bne	.L761
	umull	r2, r3, r6, r4
	str	r2, [fp, #-4020]
	str	r3, [fp, #-4016]
	b	.L758
.L761:
	mov	r0, r2
	mov	r1, r6
	b	.L762
.L760:
	cmp	r2, #0
	bne	.L763
	mov	r1, r4
.L762:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4608
	sub	lr, lr, #20
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4608
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #4608
	sub	r3, r3, #20
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L764
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-4020]
	orr	r3, r5, r3
	str	r3, [fp, #-4016]
	b	.L758
.L763:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L764:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-4020]
	str	r1, [fp, #-4016]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L758:
	ldr	r2, [fp, #-4020]
	ldr	r3, [fp, #-4016]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1688]
	ldr	r3, [fp, #-1688]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+40
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1688]
	cmp	r3, #0
	bne	.L765
	sub	r1, fp, #444
	ldmia	r1, {r0-r1}
	sub	r5, fp, #436
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+40
	mov	r0, r3
	bl	runtime_assert
.L765:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-428]
	str	r3, [fp, #-424]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-420]
	str	r3, [fp, #-416]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #428
	ldmia	r7, {r6-r7}
	sub	r5, fp, #420
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-3916]
	str	r3, [fp, #-3912]
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L768
	cmp	r2, #0
	bne	.L769
	umull	r2, r3, r6, r4
	str	r2, [fp, #-4028]
	str	r3, [fp, #-4024]
	b	.L766
.L769:
	mov	r0, r2
	mov	r1, r6
	b	.L770
.L768:
	cmp	r2, #0
	bne	.L771
	mov	r1, r4
.L770:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4608
	sub	lr, lr, #28
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4608
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #4608
	sub	r3, r3, #28
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L772
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-4028]
	orr	r3, r5, r3
	str	r3, [fp, #-4024]
	b	.L766
.L1052:
	.align	2
.L1051:
	.word	325
	.word	65535
	.word	326
	.word	327
	.word	330
	.word	331
	.word	333
	.word	335
	.word	337
	.word	338
	.word	341
	.word	342
	.word	343
	.word	357
	.word	358
	.word	359
	.word	361
	.word	363
	.word	365
	.word	366
	.word	367
	.word	369
	.word	371
.L771:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L772:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-4028]
	str	r1, [fp, #-4024]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L766:
	ldr	r2, [fp, #-4028]
	ldr	r3, [fp, #-4024]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1684]
	ldr	r3, [fp, #-1684]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+44
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1684]
	cmp	r3, #0
	bne	.L773
	sub	r1, fp, #428
	ldmia	r1, {r0-r1}
	sub	r5, fp, #420
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+44
	mov	r0, r3
	bl	runtime_assert
.L773:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-412]
	str	r3, [fp, #-408]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-404]
	str	r3, [fp, #-400]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r7, fp, #412
	ldmia	r7, {r6-r7}
	sub	r5, fp, #404
	ldmia	r5, {r4-r5}
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-3916]
	str	r3, [fp, #-3912]
	mov	r0, #0
	mov	r1, #0
	mov	r0, r7
	mov	r1, #0
	mov	r2, #0
	mov	r3, #0
	mov	r2, r5
	mov	r3, #0
	cmp	r0, #0
	bne	.L776
	cmp	r2, #0
	bne	.L777
	umull	r2, r3, r6, r4
	str	r2, [fp, #-4036]
	str	r3, [fp, #-4032]
	b	.L774
.L777:
	mov	r0, r2
	mov	r1, r6
	b	.L778
.L776:
	cmp	r2, #0
	bne	.L779
	mov	r1, r4
.L778:
	umull	r8, r9, r6, r4
	umull	r2, r3, r1, r0
	mov	r0, r2
	mov	r1, r3
	mov	r2, #0
	mov	r3, #0
	mov	r2, r9
	mov	r3, #0
	adds	ip, r0, r2
	sub	lr, fp, #4608
	sub	lr, lr, #36
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4608
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #4608
	sub	r3, r3, #36
	ldmia	r3, {r0-r1}
	mov	r2, #0
	mov	r3, #0
	mov	r2, r1
	asr	r3, r1, #31
	cmp	r2, #0
	bne	.L780
	mov	r4, #0
	mov	r5, #0
	mov	r5, r0
	mov	r4, #0
	mov	r2, r8
	mov	r3, #0
	orr	r1, r4, r2
	str	r1, [fp, #-4036]
	orr	r3, r5, r3
	str	r3, [fp, #-4032]
	b	.L774
.L779:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
.L780:
	mul	r2, r4, r7
	mul	r3, r6, r5
	add	r3, r2, r3
	umull	r0, r1, r6, r4
	add	r3, r3, r1
	mov	r1, r3
	str	r0, [fp, #-4036]
	str	r1, [fp, #-4032]
	mov	r3, #1
	mov	r4, #0
	str	r3, [fp, #-3916]
	str	r4, [fp, #-3912]
.L774:
	ldr	r2, [fp, #-4036]
	ldr	r3, [fp, #-4032]
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	ldr	r2, [fp, #-3916]
	ldr	r3, [fp, #-3912]
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1680]
	ldr	r3, [fp, #-1680]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+48
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1680]
	cmp	r3, #0
	bne	.L781
	sub	r1, fp, #412
	ldmia	r1, {r0-r1}
	sub	r5, fp, #404
	ldmia	r5, {r4-r5}
	mul	r2, r4, r1
	mul	r3, r0, r5
	add	r3, r2, r3
	umull	r6, r7, r0, r4
	add	r3, r3, r7
	mov	r7, r3
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	cmp	r7, r3
	cmpeq	r6, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+48
	mov	r0, r3
	bl	runtime_assert
.L781:
	mov	r3, #0
	strb	r3, [fp, #-3908]
	mov	r3, #0
	strb	r3, [fp, #-3907]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3908]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3907]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1676]
	ldr	r3, [fp, #-1676]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #356
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1676]
	cmp	r3, #0
	bne	.L782
	ldrb	r3, [fp, #-3908]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3907]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #356
	mov	r0, r3
	bl	runtime_assert
.L782:
	mov	r3, #0
	strb	r3, [fp, #-3906]
	mov	r3, #127
	strb	r3, [fp, #-3905]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3906]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3905]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1672]
	ldr	r3, [fp, #-1672]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+52
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1672]
	cmp	r3, #0
	bne	.L783
	ldrb	r3, [fp, #-3906]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3905]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+52
	mov	r0, r3
	bl	runtime_assert
.L783:
	mov	r3, #1
	strb	r3, [fp, #-3904]
	mov	r3, #127
	strb	r3, [fp, #-3903]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3904]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3903]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1668]
	ldr	r3, [fp, #-1668]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+56
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1668]
	cmp	r3, #0
	bne	.L784
	ldrb	r3, [fp, #-3904]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3903]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+56
	mov	r0, r3
	bl	runtime_assert
.L784:
	mov	r3, #127
	strb	r3, [fp, #-3902]
	mov	r3, #127
	strb	r3, [fp, #-3901]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3902]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3901]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1664]
	ldr	r3, [fp, #-1664]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+60
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1664]
	cmp	r3, #0
	bne	.L785
	ldrb	r3, [fp, #-3902]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3901]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+60
	mov	r0, r3
	bl	runtime_assert
.L785:
	mov	r3, #0
	strb	r3, [fp, #-3900]
	mvn	r3, #127
	strb	r3, [fp, #-3899]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3900]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3899]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1660]
	ldr	r3, [fp, #-1660]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #360
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1660]
	cmp	r3, #0
	bne	.L786
	ldrb	r3, [fp, #-3900]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3899]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #360
	mov	r0, r3
	bl	runtime_assert
.L786:
	mvn	r3, #0
	strb	r3, [fp, #-3898]
	mvn	r3, #127
	strb	r3, [fp, #-3897]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3898]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3897]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1656]
	ldr	r3, [fp, #-1656]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+64
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1656]
	cmp	r3, #0
	bne	.L787
	ldrb	r3, [fp, #-3898]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3897]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+64
	mov	r0, r3
	bl	runtime_assert
.L787:
	sub	r3, fp, #28
	sub	r2, r3, #3840
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3824
	sub	r2, r2, #14
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3840
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1652]
	ldr	r3, [fp, #-1652]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+68
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1652]
	cmp	r3, #0
	bne	.L788
	sub	r3, fp, #28
	sub	r3, r3, #3840
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+68
	mov	r0, r3
	bl	runtime_assert
.L788:
	sub	r3, fp, #28
	sub	r2, r3, #3824
	sub	r2, r2, #12
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3824
	sub	r2, r2, #10
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1648]
	ldr	r3, [fp, #-1648]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #364
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1648]
	cmp	r3, #0
	bne	.L789
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #364
	mov	r0, r3
	bl	runtime_assert
.L789:
	sub	r3, fp, #28
	sub	r2, r3, #3824
	sub	r2, r2, #8
	mov	r3, #1
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3824
	sub	r2, r2, #6
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1644]
	ldr	r3, [fp, #-1644]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+72
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1644]
	cmp	r3, #0
	bne	.L790
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+72
	mov	r0, r3
	bl	runtime_assert
.L790:
	sub	r3, fp, #28
	sub	r2, r3, #3824
	sub	r2, r2, #4
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3824
	sub	r2, r2, #2
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1640]
	ldr	r3, [fp, #-1640]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+76
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1640]
	cmp	r3, #0
	bne	.L791
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3824
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+76
	mov	r0, r3
	bl	runtime_assert
.L791:
	sub	r3, fp, #28
	sub	r2, r3, #3824
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3808
	sub	r2, r2, #14
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3824
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1636]
	ldr	r3, [fp, #-1636]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+80
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1636]
	cmp	r3, #0
	bne	.L792
	sub	r3, fp, #28
	sub	r3, r3, #3824
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+80
	mov	r0, r3
	bl	runtime_assert
.L792:
	sub	r3, fp, #28
	sub	r2, r3, #3808
	sub	r2, r2, #12
	mvn	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3808
	sub	r2, r2, #10
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1632]
	ldr	r3, [fp, #-1632]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #368
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1632]
	cmp	r3, #0
	bne	.L793
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #368
	mov	r0, r3
	bl	runtime_assert
.L793:
	sub	r3, fp, #28
	sub	r2, r3, #3808
	sub	r2, r2, #8
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3808
	sub	r2, r2, #6
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1628]
	ldr	r3, [fp, #-1628]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+84
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1628]
	cmp	r3, #0
	bne	.L794
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+84
	mov	r0, r3
	bl	runtime_assert
.L794:
	mov	r3, #0
	str	r3, [fp, #-1624]
	mov	r3, #0
	str	r3, [fp, #-1620]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1624]
	ldr	r3, [fp, #-1620]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L795
	mov	r1, #1
.L795:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1616]
	ldr	r3, [fp, #-1616]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+88
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1616]
	cmp	r3, #0
	bne	.L797
	ldr	r2, [fp, #-1624]
	ldr	r3, [fp, #-1620]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1051+88
	mov	r0, r3
	bl	runtime_assert
.L797:
	mov	r3, #0
	str	r3, [fp, #-1612]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1608]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1612]
	ldr	r3, [fp, #-1608]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L798
	mov	r1, #1
.L798:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1604]
	ldr	r3, [fp, #-1604]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #372
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1604]
	cmp	r3, #0
	bne	.L800
	ldr	r2, [fp, #-1612]
	ldr	r3, [fp, #-1608]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #372
	mov	r0, r3
	bl	runtime_assert
.L800:
	mov	r3, #1
	str	r3, [fp, #-1600]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1596]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1600]
	ldr	r3, [fp, #-1596]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L801
	mov	r1, #1
.L801:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1592]
	ldr	r3, [fp, #-1592]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1592]
	cmp	r3, #0
	bne	.L803
	ldr	r2, [fp, #-1600]
	ldr	r3, [fp, #-1596]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053
	mov	r0, r3
	bl	runtime_assert
.L803:
	mvn	r3, #-2147483648
	str	r3, [fp, #-1588]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1584]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1588]
	ldr	r3, [fp, #-1584]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L804
	mov	r1, #1
.L804:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1580]
	ldr	r3, [fp, #-1580]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+4
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1580]
	cmp	r3, #0
	bne	.L806
	ldr	r2, [fp, #-1588]
	ldr	r3, [fp, #-1584]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+4
	mov	r0, r3
	bl	runtime_assert
.L806:
	mov	r3, #0
	str	r3, [fp, #-1576]
	mov	r3, #-2147483648
	str	r3, [fp, #-1572]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1576]
	ldr	r3, [fp, #-1572]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L807
	mov	r1, #1
.L807:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1568]
	ldr	r3, [fp, #-1568]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+8
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1568]
	cmp	r3, #0
	bne	.L809
	ldr	r2, [fp, #-1576]
	ldr	r3, [fp, #-1572]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+8
	mov	r0, r3
	bl	runtime_assert
.L809:
	mvn	r3, #0
	str	r3, [fp, #-1564]
	mov	r3, #-2147483648
	str	r3, [fp, #-1560]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1564]
	ldr	r3, [fp, #-1560]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L810
	mov	r1, #1
.L810:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1556]
	ldr	r3, [fp, #-1556]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #376
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1556]
	cmp	r3, #0
	bne	.L812
	ldr	r2, [fp, #-1564]
	ldr	r3, [fp, #-1560]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #376
	mov	r0, r3
	bl	runtime_assert
.L812:
	mov	r3, #-2147483648
	str	r3, [fp, #-1552]
	mov	r3, #-2147483648
	str	r3, [fp, #-1548]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1552]
	ldr	r3, [fp, #-1548]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L813
	mov	r1, #1
.L813:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1544]
	ldr	r3, [fp, #-1544]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+12
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1544]
	cmp	r3, #0
	bne	.L815
	ldr	r2, [fp, #-1552]
	ldr	r3, [fp, #-1548]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+12
	mov	r0, r3
	bl	runtime_assert
.L815:
	mov	r3, #0
	str	r3, [fp, #-1540]
	mov	r3, #0
	str	r3, [fp, #-1536]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1540]
	ldr	r3, [fp, #-1536]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L816
	mov	r1, #1
.L816:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1532]
	ldr	r3, [fp, #-1532]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #380
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1532]
	cmp	r3, #0
	bne	.L818
	ldr	r2, [fp, #-1540]
	ldr	r3, [fp, #-1536]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #380
	mov	r0, r3
	bl	runtime_assert
.L818:
	mov	r3, #0
	str	r3, [fp, #-1528]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1524]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1528]
	ldr	r3, [fp, #-1524]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L819
	mov	r1, #1
.L819:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1520]
	ldr	r3, [fp, #-1520]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+16
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1520]
	cmp	r3, #0
	bne	.L821
	ldr	r2, [fp, #-1528]
	ldr	r3, [fp, #-1524]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+16
	mov	r0, r3
	bl	runtime_assert
.L821:
	mov	r3, #1
	str	r3, [fp, #-1516]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1512]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1516]
	ldr	r3, [fp, #-1512]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L822
	mov	r1, #1
.L822:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1508]
	ldr	r3, [fp, #-1508]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+20
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1508]
	cmp	r3, #0
	bne	.L824
	ldr	r2, [fp, #-1516]
	ldr	r3, [fp, #-1512]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+20
	mov	r0, r3
	bl	runtime_assert
.L824:
	mvn	r3, #-2147483648
	str	r3, [fp, #-1504]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1500]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1504]
	ldr	r3, [fp, #-1500]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L825
	mov	r1, #1
.L825:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1496]
	ldr	r3, [fp, #-1496]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+24
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1496]
	cmp	r3, #0
	bne	.L827
	ldr	r2, [fp, #-1504]
	ldr	r3, [fp, #-1500]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+24
	mov	r0, r3
	bl	runtime_assert
.L827:
	mov	r3, #0
	str	r3, [fp, #-1492]
	mov	r3, #-2147483648
	str	r3, [fp, #-1488]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L828
	mov	r1, #1
.L828:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1484]
	ldr	r3, [fp, #-1484]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #384
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1484]
	cmp	r3, #0
	bne	.L830
	ldr	r2, [fp, #-1492]
	ldr	r3, [fp, #-1488]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #384
	mov	r0, r3
	bl	runtime_assert
.L830:
	mvn	r3, #0
	str	r3, [fp, #-1480]
	mov	r3, #-2147483648
	str	r3, [fp, #-1476]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1480]
	ldr	r3, [fp, #-1476]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L831
	mov	r1, #1
.L831:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1472]
	ldr	r3, [fp, #-1472]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+28
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1472]
	cmp	r3, #0
	bne	.L833
	ldr	r2, [fp, #-1480]
	ldr	r3, [fp, #-1476]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+28
	mov	r0, r3
	bl	runtime_assert
.L833:
	mov	r3, #-2147483648
	str	r3, [fp, #-1468]
	mov	r3, #-2147483648
	str	r3, [fp, #-1464]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1468]
	ldr	r3, [fp, #-1464]
	mov	r1, #0
	adds	r3, r2, r3
	bvc	.L834
	mov	r1, #1
.L834:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1460]
	ldr	r3, [fp, #-1460]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+32
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1460]
	cmp	r3, #0
	bne	.L836
	ldr	r2, [fp, #-1468]
	ldr	r3, [fp, #-1464]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+32
	mov	r0, r3
	bl	runtime_assert
.L836:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-396]
	str	r3, [fp, #-392]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-388]
	str	r3, [fp, #-384]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #396
	ldmia	r1, {r0-r1}
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L837
	mov	r4, #1
	mov	r5, #0
.L837:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1456]
	ldr	r3, [fp, #-1456]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #388
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1456]
	cmp	r3, #0
	bne	.L839
	sub	r1, fp, #396
	ldmia	r1, {r0-r1}
	sub	r3, fp, #388
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #28
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4160
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #28
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #388
	mov	r0, r3
	bl	runtime_assert
.L839:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-380]
	str	r3, [fp, #-376]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-372]
	str	r3, [fp, #-368]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L840
	mov	r4, #1
	mov	r5, #0
.L840:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1452]
	ldr	r3, [fp, #-1452]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+36
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1452]
	cmp	r3, #0
	bne	.L842
	sub	r1, fp, #380
	ldmia	r1, {r0-r1}
	sub	r3, fp, #372
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #36
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4160
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+36
	mov	r0, r3
	bl	runtime_assert
.L842:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-364]
	str	r3, [fp, #-360]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-356]
	str	r3, [fp, #-352]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #364
	ldmia	r1, {r0-r1}
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L843
	mov	r4, #1
	mov	r5, #0
.L843:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1448]
	ldr	r3, [fp, #-1448]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+40
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1448]
	cmp	r3, #0
	bne	.L845
	sub	r1, fp, #364
	ldmia	r1, {r0-r1}
	sub	r3, fp, #356
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #44
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4160
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #44
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+40
	mov	r0, r3
	bl	runtime_assert
.L845:
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-348]
	str	r3, [fp, #-344]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-340]
	str	r3, [fp, #-336]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #348
	ldmia	r1, {r0-r1}
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L846
	mov	r4, #1
	mov	r5, #0
.L846:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1444]
	ldr	r3, [fp, #-1444]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+44
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1444]
	cmp	r3, #0
	bne	.L848
	sub	r1, fp, #348
	ldmia	r1, {r0-r1}
	sub	r3, fp, #340
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #52
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4160
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #52
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+44
	mov	r0, r3
	bl	runtime_assert
.L848:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-332]
	str	r3, [fp, #-328]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-324]
	str	r3, [fp, #-320]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #332
	ldmia	r1, {r0-r1}
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L849
	mov	r4, #1
	mov	r5, #0
.L849:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1440]
	ldr	r3, [fp, #-1440]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #392
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1440]
	cmp	r3, #0
	bne	.L851
	sub	r1, fp, #332
	ldmia	r1, {r0-r1}
	sub	r3, fp, #324
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4160
	sub	lr, lr, #60
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4160
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4160
	sub	r1, r1, #60
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #392
	mov	r0, r3
	bl	runtime_assert
.L851:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-316]
	str	r3, [fp, #-312]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-308]
	str	r3, [fp, #-304]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #316
	ldmia	r1, {r0-r1}
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L852
	mov	r4, #1
	mov	r5, #0
.L852:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1436]
	ldr	r3, [fp, #-1436]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+48
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1436]
	cmp	r3, #0
	bne	.L854
	sub	r1, fp, #316
	ldmia	r1, {r0-r1}
	sub	r3, fp, #308
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #4
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4224
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #4
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+48
	mov	r0, r3
	bl	runtime_assert
.L854:
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-300]
	str	r3, [fp, #-296]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-292]
	str	r3, [fp, #-288]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bvc	.L855
	mov	r4, #1
	mov	r5, #0
.L855:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1432]
	ldr	r3, [fp, #-1432]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+52
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1432]
	cmp	r3, #0
	bne	.L857
	sub	r1, fp, #300
	ldmia	r1, {r0-r1}
	sub	r3, fp, #292
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #12
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4224
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #12
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+52
	mov	r0, r3
	bl	runtime_assert
.L857:
	mov	r3, #0
	strb	r3, [fp, #-3896]
	mov	r3, #0
	strb	r3, [fp, #-3895]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3896]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3895]
	and	r3, r3, #255
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1428]
	ldr	r3, [fp, #-1428]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+56
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1428]
	cmp	r3, #0
	bne	.L858
	ldrb	r3, [fp, #-3896]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3895]
	and	r3, r3, #255
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+56
	mov	r0, r3
	bl	runtime_assert
.L858:
	mov	r3, #0
	strb	r3, [fp, #-3894]
	mvn	r3, #0
	strb	r3, [fp, #-3893]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3894]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3893]
	and	r3, r3, #255
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1424]
	ldr	r3, [fp, #-1424]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+60
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1424]
	cmp	r3, #0
	bne	.L859
	ldrb	r3, [fp, #-3894]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3893]
	and	r3, r3, #255
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+60
	mov	r0, r3
	bl	runtime_assert
	b	.L1054
.L1055:
	.align	2
.L1053:
	.word	373
	.word	374
	.word	375
	.word	377
	.word	381
	.word	382
	.word	383
	.word	385
	.word	386
	.word	389
	.word	390
	.word	391
	.word	393
	.word	394
	.word	397
	.word	398
	.word	399
	.word	402
	.word	403
	.word	405
	.word	407
	.word	409
	.word	410
	.word	413
	.word	414
	.word	415
	.word	418
	.word	419
	.word	421
	.word	425
.L1054:
.L859:
	mov	r3, #1
	strb	r3, [fp, #-3892]
	mvn	r3, #0
	strb	r3, [fp, #-3891]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3892]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3891]
	and	r3, r3, #255
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1420]
	ldr	r3, [fp, #-1420]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+64
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1420]
	cmp	r3, #0
	bne	.L860
	ldrb	r3, [fp, #-3892]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3891]
	and	r3, r3, #255
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+64
	mov	r0, r3
	bl	runtime_assert
.L860:
	mvn	r3, #0
	strb	r3, [fp, #-3890]
	mvn	r3, #0
	strb	r3, [fp, #-3889]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3890]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3889]
	and	r3, r3, #255
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1416]
	ldr	r3, [fp, #-1416]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #400
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1416]
	cmp	r3, #0
	bne	.L861
	ldrb	r3, [fp, #-3890]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3889]
	and	r3, r3, #255
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #400
	mov	r0, r3
	bl	runtime_assert
.L861:
	sub	r3, fp, #28
	sub	r2, r3, #3808
	sub	r2, r2, #4
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3808
	sub	r2, r2, #2
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1412]
	ldr	r3, [fp, #-1412]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+68
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1412]
	cmp	r3, #0
	bne	.L862
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3808
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+68
	mov	r0, r3
	bl	runtime_assert
.L862:
	sub	r3, fp, #28
	sub	r2, r3, #3808
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3792
	sub	r2, r2, #14
	mvn	r3, #0
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3808
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1408]
	ldr	r3, [fp, #-1408]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+72
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1408]
	cmp	r3, #0
	bne	.L863
	sub	r3, fp, #28
	sub	r3, r3, #3808
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+72
	mov	r0, r3
	bl	runtime_assert
.L863:
	sub	r3, fp, #28
	sub	r2, r3, #3792
	sub	r2, r2, #12
	mov	r3, #1
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3792
	sub	r2, r2, #10
	mvn	r3, #0
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1404]
	ldr	r3, [fp, #-1404]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #404
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1404]
	cmp	r3, #0
	bne	.L864
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #404
	mov	r0, r3
	bl	runtime_assert
.L864:
	sub	r3, fp, #28
	sub	r2, r3, #3792
	sub	r2, r2, #8
	mvn	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3792
	sub	r2, r2, #6
	mvn	r3, #0
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, #0
	add	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1400]
	ldr	r3, [fp, #-1400]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+76
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1400]
	cmp	r3, #0
	bne	.L865
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+76
	mov	r0, r3
	bl	runtime_assert
.L865:
	mov	r3, #0
	str	r3, [fp, #-1396]
	mov	r3, #0
	str	r3, [fp, #-1392]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1396]
	ldr	r3, [fp, #-1392]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L866
	mov	r1, #1
.L866:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1388]
	ldr	r3, [fp, #-1388]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+80
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1388]
	cmp	r3, #0
	bne	.L868
	ldr	r2, [fp, #-1396]
	ldr	r3, [fp, #-1392]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+80
	mov	r0, r3
	bl	runtime_assert
.L868:
	mov	r3, #0
	str	r3, [fp, #-1384]
	mvn	r3, #0
	str	r3, [fp, #-1380]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1384]
	ldr	r3, [fp, #-1380]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L869
	mov	r1, #1
.L869:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1376]
	ldr	r3, [fp, #-1376]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #408
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1376]
	cmp	r3, #0
	bne	.L871
	ldr	r2, [fp, #-1384]
	ldr	r3, [fp, #-1380]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #408
	mov	r0, r3
	bl	runtime_assert
.L871:
	mov	r3, #1
	str	r3, [fp, #-1372]
	mvn	r3, #0
	str	r3, [fp, #-1368]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1372]
	ldr	r3, [fp, #-1368]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L872
	mov	r1, #1
.L872:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1364]
	ldr	r3, [fp, #-1364]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+84
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1364]
	cmp	r3, #0
	bne	.L874
	ldr	r2, [fp, #-1372]
	ldr	r3, [fp, #-1368]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+84
	mov	r0, r3
	bl	runtime_assert
.L874:
	mvn	r3, #0
	str	r3, [fp, #-1360]
	mvn	r3, #0
	str	r3, [fp, #-1356]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1360]
	ldr	r3, [fp, #-1356]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L875
	mov	r1, #1
.L875:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1352]
	ldr	r3, [fp, #-1352]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+88
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1352]
	cmp	r3, #0
	bne	.L877
	ldr	r2, [fp, #-1360]
	ldr	r3, [fp, #-1356]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+88
	mov	r0, r3
	bl	runtime_assert
.L877:
	mov	r3, #0
	str	r3, [fp, #-1348]
	mov	r3, #0
	str	r3, [fp, #-1344]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1348]
	ldr	r3, [fp, #-1344]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L878
	mov	r1, #1
.L878:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1340]
	ldr	r3, [fp, #-1340]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+92
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1340]
	cmp	r3, #0
	bne	.L880
	ldr	r2, [fp, #-1348]
	ldr	r3, [fp, #-1344]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+92
	mov	r0, r3
	bl	runtime_assert
.L880:
	mov	r3, #0
	str	r3, [fp, #-1336]
	mvn	r3, #0
	str	r3, [fp, #-1332]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1336]
	ldr	r3, [fp, #-1332]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L881
	mov	r1, #1
.L881:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1328]
	ldr	r3, [fp, #-1328]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+96
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1328]
	cmp	r3, #0
	bne	.L883
	ldr	r2, [fp, #-1336]
	ldr	r3, [fp, #-1332]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+96
	mov	r0, r3
	bl	runtime_assert
.L883:
	mov	r3, #1
	str	r3, [fp, #-1324]
	mvn	r3, #0
	str	r3, [fp, #-1320]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1324]
	ldr	r3, [fp, #-1320]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L884
	mov	r1, #1
.L884:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1316]
	ldr	r3, [fp, #-1316]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+100
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1316]
	cmp	r3, #0
	bne	.L886
	ldr	r2, [fp, #-1324]
	ldr	r3, [fp, #-1320]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+100
	mov	r0, r3
	bl	runtime_assert
.L886:
	mvn	r3, #0
	str	r3, [fp, #-1312]
	mvn	r3, #0
	str	r3, [fp, #-1308]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1312]
	ldr	r3, [fp, #-1308]
	mov	r1, #0
	adds	r3, r2, r3
	bcc	.L887
	mov	r1, #1
.L887:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1304]
	ldr	r3, [fp, #-1304]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #416
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1304]
	cmp	r3, #0
	bne	.L889
	ldr	r2, [fp, #-1312]
	ldr	r3, [fp, #-1308]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #416
	mov	r0, r3
	bl	runtime_assert
.L889:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-284]
	str	r3, [fp, #-280]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-276]
	str	r3, [fp, #-272]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bcc	.L890
	mov	r4, #1
	mov	r5, #0
.L890:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1300]
	ldr	r3, [fp, #-1300]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+104
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1300]
	cmp	r3, #0
	bne	.L892
	sub	r1, fp, #284
	ldmia	r1, {r0-r1}
	sub	r3, fp, #276
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #20
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4224
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #20
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+104
	mov	r0, r3
	bl	runtime_assert
.L892:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-268]
	str	r3, [fp, #-264]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-260]
	str	r3, [fp, #-256]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bcc	.L893
	mov	r4, #1
	mov	r5, #0
.L893:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1296]
	ldr	r3, [fp, #-1296]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+108
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1296]
	cmp	r3, #0
	bne	.L895
	sub	r1, fp, #268
	ldmia	r1, {r0-r1}
	sub	r3, fp, #260
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #28
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4224
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #28
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+108
	mov	r0, r3
	bl	runtime_assert
.L895:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-252]
	str	r3, [fp, #-248]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-244]
	str	r3, [fp, #-240]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bcc	.L896
	mov	r4, #1
	mov	r5, #0
.L896:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1292]
	ldr	r3, [fp, #-1292]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #420
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1292]
	cmp	r3, #0
	bne	.L898
	sub	r1, fp, #252
	ldmia	r1, {r0-r1}
	sub	r3, fp, #244
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #36
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4224
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #420
	mov	r0, r3
	bl	runtime_assert
.L898:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-236]
	str	r3, [fp, #-232]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-228]
	str	r3, [fp, #-224]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	adds	r6, r0, r2
	adcs	r7, r1, r3
	bcc	.L899
	mov	r4, #1
	mov	r5, #0
.L899:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1288]
	ldr	r3, [fp, #-1288]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+112
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1288]
	cmp	r3, #0
	bne	.L901
	sub	r1, fp, #236
	ldmia	r1, {r0-r1}
	sub	r3, fp, #228
	ldmia	r3, {r2-r3}
	adds	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #44
	str	ip, [lr]
	adc	r3, r1, r3
	sub	r2, fp, #4224
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #44
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+112
	mov	r0, r3
	bl	runtime_assert
.L901:
	mov	r3, #0
	strb	r3, [fp, #-3888]
	mov	r3, #0
	strb	r3, [fp, #-3887]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3888]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3887]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1284]
	ldr	r3, [fp, #-1284]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #424
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1284]
	cmp	r3, #0
	bne	.L902
	ldrb	r3, [fp, #-3888]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3887]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #424
	mov	r0, r3
	bl	runtime_assert
.L902:
	mov	r3, #0
	strb	r3, [fp, #-3886]
	mov	r3, #127
	strb	r3, [fp, #-3885]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3886]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3885]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1280]
	ldr	r3, [fp, #-1280]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1053+116
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1280]
	cmp	r3, #0
	bne	.L903
	ldrb	r3, [fp, #-3886]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3885]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056
	mov	r0, r3
	bl	runtime_assert
.L903:
	mov	r3, #1
	strb	r3, [fp, #-3884]
	mov	r3, #127
	strb	r3, [fp, #-3883]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3884]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3883]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1276]
	ldr	r3, [fp, #-1276]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+4
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1276]
	cmp	r3, #0
	bne	.L904
	ldrb	r3, [fp, #-3884]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3883]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+4
	mov	r0, r3
	bl	runtime_assert
.L904:
	mov	r3, #127
	strb	r3, [fp, #-3882]
	mov	r3, #127
	strb	r3, [fp, #-3881]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3882]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3881]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1272]
	ldr	r3, [fp, #-1272]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+8
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1272]
	cmp	r3, #0
	bne	.L905
	ldrb	r3, [fp, #-3882]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3881]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+8
	mov	r0, r3
	bl	runtime_assert
.L905:
	mov	r3, #0
	strb	r3, [fp, #-3880]
	mvn	r3, #127
	strb	r3, [fp, #-3879]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3880]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3879]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1268]
	ldr	r3, [fp, #-1268]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #428
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1268]
	cmp	r3, #0
	bne	.L906
	ldrb	r3, [fp, #-3880]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3879]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #428
	mov	r0, r3
	bl	runtime_assert
.L906:
	mvn	r3, #0
	strb	r3, [fp, #-3878]
	mvn	r3, #127
	strb	r3, [fp, #-3877]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3878]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3877]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1264]
	ldr	r3, [fp, #-1264]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+12
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1264]
	cmp	r3, #0
	bne	.L907
	ldrb	r3, [fp, #-3878]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrb	r3, [fp, #-3877]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+12
	mov	r0, r3
	bl	runtime_assert
.L907:
	sub	r3, fp, #28
	sub	r2, r3, #3792
	sub	r2, r2, #4
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3792
	sub	r2, r2, #2
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1260]
	ldr	r3, [fp, #-1260]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+16
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1260]
	cmp	r3, #0
	bne	.L908
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3792
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+16
	mov	r0, r3
	bl	runtime_assert
.L908:
	sub	r3, fp, #28
	sub	r2, r3, #3792
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3776
	sub	r2, r2, #14
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3792
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1256]
	ldr	r3, [fp, #-1256]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #432
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1256]
	cmp	r3, #0
	bne	.L909
	sub	r3, fp, #28
	sub	r3, r3, #3792
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #432
	mov	r0, r3
	bl	runtime_assert
.L909:
	sub	r3, fp, #28
	sub	r2, r3, #3776
	sub	r2, r2, #12
	mov	r3, #1
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3776
	sub	r2, r2, #10
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1252]
	ldr	r3, [fp, #-1252]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+20
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1252]
	cmp	r3, #0
	bne	.L910
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+20
	mov	r0, r3
	bl	runtime_assert
.L910:
	sub	r3, fp, #28
	sub	r2, r3, #3776
	sub	r2, r2, #8
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3776
	sub	r2, r2, #6
	mvn	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1248]
	ldr	r3, [fp, #-1248]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+24
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1248]
	cmp	r3, #0
	bne	.L911
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+24
	mov	r0, r3
	bl	runtime_assert
.L911:
	sub	r3, fp, #28
	sub	r2, r3, #3776
	sub	r2, r2, #4
	mov	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3776
	sub	r2, r2, #2
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1244]
	ldr	r3, [fp, #-1244]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+28
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1244]
	cmp	r3, #0
	bne	.L912
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3776
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+28
	mov	r0, r3
	bl	runtime_assert
.L912:
	sub	r3, fp, #28
	sub	r2, r3, #3776
	mvn	r3, #0
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3760
	sub	r2, r2, #14
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3776
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1240]
	ldr	r3, [fp, #-1240]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #436
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1240]
	cmp	r3, #0
	bne	.L913
	sub	r3, fp, #28
	sub	r3, r3, #3776
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #436
	mov	r0, r3
	bl	runtime_assert
.L913:
	sub	r3, fp, #28
	sub	r2, r3, #3760
	sub	r2, r2, #12
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #28
	sub	r2, r3, #3760
	sub	r2, r2, #10
	mov	r3, #32768
	strh	r3, [r2]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1236]
	ldr	r3, [fp, #-1236]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+32
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1236]
	cmp	r3, #0
	bne	.L914
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+32
	mov	r0, r3
	bl	runtime_assert
.L914:
	mov	r3, #0
	str	r3, [fp, #-1232]
	mov	r3, #0
	str	r3, [fp, #-1228]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1232]
	ldr	r3, [fp, #-1228]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L915
	mov	r1, #1
.L915:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1224]
	ldr	r3, [fp, #-1224]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+36
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1224]
	cmp	r3, #0
	bne	.L917
	ldr	r2, [fp, #-1232]
	ldr	r3, [fp, #-1228]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+36
	mov	r0, r3
	bl	runtime_assert
.L917:
	mov	r3, #0
	str	r3, [fp, #-1220]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1216]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1220]
	ldr	r3, [fp, #-1216]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L918
	mov	r1, #1
.L918:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1212]
	ldr	r3, [fp, #-1212]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #440
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1212]
	cmp	r3, #0
	bne	.L920
	ldr	r2, [fp, #-1220]
	ldr	r3, [fp, #-1216]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #440
	mov	r0, r3
	bl	runtime_assert
.L920:
	mov	r3, #1
	str	r3, [fp, #-1208]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1204]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1208]
	ldr	r3, [fp, #-1204]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L921
	mov	r1, #1
.L921:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1200]
	ldr	r3, [fp, #-1200]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+40
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1200]
	cmp	r3, #0
	bne	.L923
	ldr	r2, [fp, #-1208]
	ldr	r3, [fp, #-1204]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+40
	mov	r0, r3
	bl	runtime_assert
.L923:
	mvn	r3, #-2147483648
	str	r3, [fp, #-1196]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1192]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1196]
	ldr	r3, [fp, #-1192]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L924
	mov	r1, #1
.L924:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1188]
	ldr	r3, [fp, #-1188]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+44
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1188]
	cmp	r3, #0
	bne	.L926
	ldr	r2, [fp, #-1196]
	ldr	r3, [fp, #-1192]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+44
	mov	r0, r3
	bl	runtime_assert
.L926:
	mov	r3, #0
	str	r3, [fp, #-1184]
	mov	r3, #-2147483648
	str	r3, [fp, #-1180]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1184]
	ldr	r3, [fp, #-1180]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L927
	mov	r1, #1
.L927:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1176]
	ldr	r3, [fp, #-1176]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+48
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1176]
	cmp	r3, #0
	bne	.L929
	ldr	r2, [fp, #-1184]
	ldr	r3, [fp, #-1180]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+48
	mov	r0, r3
	bl	runtime_assert
.L929:
	mvn	r3, #0
	str	r3, [fp, #-1172]
	mov	r3, #-2147483648
	str	r3, [fp, #-1168]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1172]
	ldr	r3, [fp, #-1168]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L930
	mov	r1, #1
.L930:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1164]
	ldr	r3, [fp, #-1164]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #444
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1164]
	cmp	r3, #0
	bne	.L932
	ldr	r2, [fp, #-1172]
	ldr	r3, [fp, #-1168]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #444
	mov	r0, r3
	bl	runtime_assert
.L932:
	mov	r3, #-2147483648
	str	r3, [fp, #-1160]
	mov	r3, #-2147483648
	str	r3, [fp, #-1156]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1156]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L933
	mov	r1, #1
.L933:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1152]
	ldr	r3, [fp, #-1152]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+52
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1152]
	cmp	r3, #0
	bne	.L935
	ldr	r2, [fp, #-1160]
	ldr	r3, [fp, #-1156]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+52
	mov	r0, r3
	bl	runtime_assert
.L935:
	mov	r3, #0
	str	r3, [fp, #-1148]
	mov	r3, #0
	str	r3, [fp, #-1144]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1148]
	ldr	r3, [fp, #-1144]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L936
	mov	r1, #1
.L936:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1140]
	ldr	r3, [fp, #-1140]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #448
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1140]
	cmp	r3, #0
	bne	.L938
	ldr	r2, [fp, #-1148]
	ldr	r3, [fp, #-1144]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #448
	mov	r0, r3
	bl	runtime_assert
.L938:
	mov	r3, #0
	str	r3, [fp, #-1136]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1132]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1136]
	ldr	r3, [fp, #-1132]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L939
	mov	r1, #1
.L939:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1128]
	ldr	r3, [fp, #-1128]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+56
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1128]
	cmp	r3, #0
	bne	.L941
	ldr	r2, [fp, #-1136]
	ldr	r3, [fp, #-1132]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+56
	mov	r0, r3
	bl	runtime_assert
.L941:
	mov	r3, #1
	str	r3, [fp, #-1124]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1120]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1124]
	ldr	r3, [fp, #-1120]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L942
	mov	r1, #1
.L942:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1116]
	ldr	r3, [fp, #-1116]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+60
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1116]
	cmp	r3, #0
	bne	.L944
	b	.L1057
.L1058:
	.align	2
.L1056:
	.word	425
	.word	426
	.word	427
	.word	429
	.word	431
	.word	433
	.word	434
	.word	435
	.word	437
	.word	439
	.word	441
	.word	442
	.word	443
	.word	445
	.word	449
	.word	450
	.word	451
	.word	453
	.word	454
	.word	457
	.word	458
	.word	459
	.word	461
	.word	462
	.word	463
	.word	466
	.word	467
	.word	469
	.word	471
	.word	473
.L1057:
	ldr	r2, [fp, #-1124]
	ldr	r3, [fp, #-1120]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+60
	mov	r0, r3
	bl	runtime_assert
.L944:
	mvn	r3, #-2147483648
	str	r3, [fp, #-1112]
	mvn	r3, #-2147483648
	str	r3, [fp, #-1108]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1112]
	ldr	r3, [fp, #-1108]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L945
	mov	r1, #1
.L945:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1104]
	ldr	r3, [fp, #-1104]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+64
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1104]
	cmp	r3, #0
	bne	.L947
	ldr	r2, [fp, #-1112]
	ldr	r3, [fp, #-1108]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+64
	mov	r0, r3
	bl	runtime_assert
.L947:
	mov	r3, #0
	str	r3, [fp, #-1100]
	mov	r3, #-2147483648
	str	r3, [fp, #-1096]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1100]
	ldr	r3, [fp, #-1096]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L948
	mov	r1, #1
.L948:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1092]
	ldr	r3, [fp, #-1092]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #452
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1092]
	cmp	r3, #0
	bne	.L950
	ldr	r2, [fp, #-1100]
	ldr	r3, [fp, #-1096]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #452
	mov	r0, r3
	bl	runtime_assert
.L950:
	mvn	r3, #0
	str	r3, [fp, #-1088]
	mov	r3, #-2147483648
	str	r3, [fp, #-1084]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1088]
	ldr	r3, [fp, #-1084]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L951
	mov	r1, #1
.L951:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1080]
	ldr	r3, [fp, #-1080]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+68
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1080]
	cmp	r3, #0
	bne	.L953
	ldr	r2, [fp, #-1088]
	ldr	r3, [fp, #-1084]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+68
	mov	r0, r3
	bl	runtime_assert
.L953:
	mov	r3, #-2147483648
	str	r3, [fp, #-1076]
	mov	r3, #-2147483648
	str	r3, [fp, #-1072]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1076]
	ldr	r3, [fp, #-1072]
	mov	r1, #0
	subs	r3, r2, r3
	bvc	.L954
	mov	r1, #1
.L954:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1068]
	ldr	r3, [fp, #-1068]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+72
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1068]
	cmp	r3, #0
	bne	.L956
	ldr	r2, [fp, #-1076]
	ldr	r3, [fp, #-1072]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+72
	mov	r0, r3
	bl	runtime_assert
.L956:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-220]
	str	r3, [fp, #-216]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-212]
	str	r3, [fp, #-208]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L957
	mov	r4, #1
	mov	r5, #0
.L957:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1064]
	ldr	r3, [fp, #-1064]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+76
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1064]
	cmp	r3, #0
	bne	.L959
	sub	r1, fp, #220
	ldmia	r1, {r0-r1}
	sub	r3, fp, #212
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #52
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4224
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #52
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+76
	mov	r0, r3
	bl	runtime_assert
.L959:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-204]
	str	r3, [fp, #-200]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-196]
	str	r3, [fp, #-192]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L960
	mov	r4, #1
	mov	r5, #0
.L960:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1060]
	ldr	r3, [fp, #-1060]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+80
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1060]
	cmp	r3, #0
	bne	.L962
	sub	r1, fp, #204
	ldmia	r1, {r0-r1}
	sub	r3, fp, #196
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4224
	sub	lr, lr, #60
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4224
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4224
	sub	r1, r1, #60
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+80
	mov	r0, r3
	bl	runtime_assert
.L962:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-188]
	str	r3, [fp, #-184]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-180]
	str	r3, [fp, #-176]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #188
	ldmia	r1, {r0-r1}
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L963
	mov	r4, #1
	mov	r5, #0
.L963:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1056]
	ldr	r3, [fp, #-1056]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+84
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1056]
	cmp	r3, #0
	bne	.L965
	sub	r1, fp, #188
	ldmia	r1, {r0-r1}
	sub	r3, fp, #180
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #4
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #4
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+84
	mov	r0, r3
	bl	runtime_assert
.L965:
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-172]
	str	r3, [fp, #-168]
	mvn	r2, #0
	mvn	r3, #-2147483648
	str	r2, [fp, #-164]
	str	r3, [fp, #-160]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L966
	mov	r4, #1
	mov	r5, #0
.L966:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1052]
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #460
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1052]
	cmp	r3, #0
	bne	.L968
	sub	r1, fp, #172
	ldmia	r1, {r0-r1}
	sub	r3, fp, #164
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #12
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	sub	r2, r2, #8
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #12
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #460
	mov	r0, r3
	bl	runtime_assert
.L968:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-156]
	str	r3, [fp, #-152]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-148]
	str	r3, [fp, #-144]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L969
	mov	r4, #1
	mov	r5, #0
.L969:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1048]
	ldr	r3, [fp, #-1048]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+88
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1048]
	cmp	r3, #0
	bne	.L971
	sub	r1, fp, #156
	ldmia	r1, {r0-r1}
	sub	r3, fp, #148
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #20
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	sub	r2, r2, #16
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #20
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+88
	mov	r0, r3
	bl	runtime_assert
.L971:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-140]
	str	r3, [fp, #-136]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-132]
	str	r3, [fp, #-128]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bvc	.L972
	mov	r4, #1
	mov	r5, #0
.L972:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1044]
	ldr	r3, [fp, #-1044]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+92
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1044]
	cmp	r3, #0
	bne	.L974
	sub	r1, fp, #140
	ldmia	r1, {r0-r1}
	sub	r3, fp, #132
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #28
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	sub	r2, r2, #24
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #28
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+92
	mov	r0, r3
	bl	runtime_assert
.L974:
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-124]
	str	r3, [fp, #-120]
	mov	r2, #0
	mov	r3, #-2147483648
	str	r2, [fp, #-116]
	str	r3, [fp, #-112]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	mov	r6, #0
	mov	r7, #0
	subs	r4, r0, r2
	sbcs	r5, r1, r3
	bvc	.L975
	mov	r6, #1
	mov	r7, #0
.L975:
	mov	r2, r4
	mov	r3, r5
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r6
	mov	r3, r7
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1040]
	ldr	r3, [fp, #-1040]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+96
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1040]
	cmp	r3, #0
	bne	.L977
	sub	r1, fp, #124
	ldmia	r1, {r0-r1}
	sub	r3, fp, #116
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #36
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	sub	r2, r2, #32
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #36
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+96
	mov	r0, r3
	bl	runtime_assert
.L977:
	mov	r3, #0
	strb	r3, [fp, #-3876]
	mov	r3, #0
	strb	r3, [fp, #-3875]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3876]
	and	r3, r3, #255
	mov	r1, r3
	ldrb	r3, [fp, #-3875]
	and	r3, r3, #255
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L978
	mov	r3, #1
.L978:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1036]
	ldr	r3, [fp, #-1036]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+100
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1036]
	cmp	r3, #0
	bne	.L980
	ldrb	r3, [fp, #-3876]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3875]
	and	r3, r3, #255
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+100
	mov	r0, r3
	bl	runtime_assert
.L980:
	mov	r3, #0
	strb	r3, [fp, #-3874]
	mvn	r3, #0
	strb	r3, [fp, #-3873]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3874]
	and	r3, r3, #255
	mov	r1, r3
	ldrb	r3, [fp, #-3873]
	and	r3, r3, #255
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L981
	mov	r3, #1
.L981:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1032]
	ldr	r3, [fp, #-1032]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+104
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1032]
	cmp	r3, #0
	bne	.L983
	ldrb	r3, [fp, #-3874]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3873]
	and	r3, r3, #255
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+104
	mov	r0, r3
	bl	runtime_assert
.L983:
	mov	r3, #1
	strb	r3, [fp, #-3872]
	mvn	r3, #0
	strb	r3, [fp, #-3871]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3872]
	and	r3, r3, #255
	mov	r1, r3
	ldrb	r3, [fp, #-3871]
	and	r3, r3, #255
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L984
	mov	r3, #1
.L984:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1028]
	ldr	r3, [fp, #-1028]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #468
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1028]
	cmp	r3, #0
	bne	.L986
	ldrb	r3, [fp, #-3872]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3871]
	and	r3, r3, #255
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #468
	mov	r0, r3
	bl	runtime_assert
.L986:
	mvn	r3, #0
	strb	r3, [fp, #-3870]
	mvn	r3, #0
	strb	r3, [fp, #-3869]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldrb	r3, [fp, #-3870]
	and	r3, r3, #255
	mov	r1, r3
	ldrb	r3, [fp, #-3869]
	and	r3, r3, #255
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L987
	mov	r3, #1
.L987:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1024]
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+108
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1024]
	cmp	r3, #0
	bne	.L989
	ldrb	r3, [fp, #-3870]
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-3869]
	and	r3, r3, #255
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+108
	mov	r0, r3
	bl	runtime_assert
.L989:
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #8
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #6
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L990
	mov	r3, #1
.L990:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1020]
	ldr	r3, [fp, #-1020]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+112
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1020]
	cmp	r3, #0
	bne	.L992
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #8
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #6
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+112
	mov	r0, r3
	bl	runtime_assert
.L992:
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #4
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #2
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L993
	mov	r3, #1
.L993:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1016]
	ldr	r3, [fp, #-1016]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #472
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1016]
	cmp	r3, #0
	bne	.L995
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #4
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3760
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #472
	mov	r0, r3
	bl	runtime_assert
.L995:
	sub	r3, fp, #28
	sub	r3, r3, #3760
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #14
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3760
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L996
	mov	r3, #1
.L996:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1012]
	ldr	r3, [fp, #-1012]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1056+116
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1012]
	cmp	r3, #0
	bne	.L998
	sub	r3, fp, #28
	sub	r3, r3, #3760
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #14
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059
	mov	r0, r3
	bl	runtime_assert
.L998:
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #12
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #10
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-44]
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	mov	r3, #0
	subs	r2, r1, r2
	bcs	.L999
	mov	r3, #1
.L999:
	str	r2, [fp, #-44]
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-1008]
	ldr	r3, [fp, #-1008]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+4
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-1008]
	cmp	r3, #0
	bne	.L1001
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #12
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #28
	sub	r3, r3, #3744
	sub	r3, r3, #10
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+4
	mov	r0, r3
	bl	runtime_assert
.L1001:
	mov	r3, #0
	str	r3, [fp, #-1004]
	mov	r3, #0
	str	r3, [fp, #-1000]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-1004]
	ldr	r3, [fp, #-1000]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1002
	mov	r1, #1
.L1002:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-996]
	ldr	r3, [fp, #-996]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #476
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-996]
	cmp	r3, #0
	bne	.L1004
	ldr	r2, [fp, #-1004]
	ldr	r3, [fp, #-1000]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #476
	mov	r0, r3
	bl	runtime_assert
.L1004:
	mov	r3, #0
	str	r3, [fp, #-992]
	mvn	r3, #0
	str	r3, [fp, #-988]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-992]
	ldr	r3, [fp, #-988]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1005
	mov	r1, #1
.L1005:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-984]
	ldr	r3, [fp, #-984]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+8
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-984]
	cmp	r3, #0
	bne	.L1007
	ldr	r2, [fp, #-992]
	ldr	r3, [fp, #-988]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+8
	mov	r0, r3
	bl	runtime_assert
.L1007:
	mov	r3, #1
	str	r3, [fp, #-980]
	mvn	r3, #0
	str	r3, [fp, #-976]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-980]
	ldr	r3, [fp, #-976]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1008
	mov	r1, #1
.L1008:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-972]
	ldr	r3, [fp, #-972]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+12
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-972]
	cmp	r3, #0
	bne	.L1010
	ldr	r2, [fp, #-980]
	ldr	r3, [fp, #-976]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+12
	mov	r0, r3
	bl	runtime_assert
.L1010:
	mvn	r3, #0
	str	r3, [fp, #-968]
	mvn	r3, #0
	str	r3, [fp, #-964]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-964]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1011
	mov	r1, #1
.L1011:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-960]
	ldr	r3, [fp, #-960]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+16
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-960]
	cmp	r3, #0
	bne	.L1013
	ldr	r2, [fp, #-968]
	ldr	r3, [fp, #-964]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+16
	mov	r0, r3
	bl	runtime_assert
.L1013:
	mov	r3, #0
	str	r3, [fp, #-956]
	mov	r3, #0
	str	r3, [fp, #-952]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-956]
	ldr	r3, [fp, #-952]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1014
	mov	r1, #1
.L1014:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-948]
	ldr	r3, [fp, #-948]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+20
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-948]
	cmp	r3, #0
	bne	.L1016
	ldr	r2, [fp, #-956]
	ldr	r3, [fp, #-952]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+20
	mov	r0, r3
	bl	runtime_assert
.L1016:
	mov	r3, #0
	str	r3, [fp, #-944]
	mvn	r3, #0
	str	r3, [fp, #-940]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-944]
	ldr	r3, [fp, #-940]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1017
	mov	r1, #1
.L1017:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-936]
	ldr	r3, [fp, #-936]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+24
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-936]
	cmp	r3, #0
	bne	.L1019
	ldr	r2, [fp, #-944]
	ldr	r3, [fp, #-940]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+24
	mov	r0, r3
	bl	runtime_assert
.L1019:
	mov	r3, #1
	str	r3, [fp, #-932]
	mvn	r3, #0
	str	r3, [fp, #-928]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-932]
	ldr	r3, [fp, #-928]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1020
	mov	r1, #1
.L1020:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-924]
	ldr	r3, [fp, #-924]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #484
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-924]
	cmp	r3, #0
	bne	.L1022
	ldr	r2, [fp, #-932]
	ldr	r3, [fp, #-928]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #484
	mov	r0, r3
	bl	runtime_assert
.L1022:
	mvn	r3, #0
	str	r3, [fp, #-920]
	mvn	r3, #0
	str	r3, [fp, #-916]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, [fp, #-920]
	ldr	r3, [fp, #-916]
	mov	r1, #0
	subs	r3, r2, r3
	bcs	.L1023
	mov	r1, #1
.L1023:
	str	r3, [fp, #-44]
	mov	r3, r1
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-912]
	ldr	r3, [fp, #-912]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+28
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-912]
	cmp	r3, #0
	bne	.L1025
	ldr	r2, [fp, #-920]
	ldr	r3, [fp, #-916]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+28
	mov	r0, r3
	bl	runtime_assert
.L1025:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-108]
	str	r3, [fp, #-104]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-100]
	str	r3, [fp, #-96]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	mov	r6, #0
	mov	r7, #0
	subs	r4, r0, r2
	sbcs	r5, r1, r3
	bcs	.L1026
	mov	r6, #1
	mov	r7, #0
.L1026:
	mov	r2, r4
	mov	r3, r5
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r6
	mov	r3, r7
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-908]
	ldr	r3, [fp, #-908]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #488
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-908]
	cmp	r3, #0
	bne	.L1028
	sub	r1, fp, #108
	ldmia	r1, {r0-r1}
	sub	r3, fp, #100
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #44
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	sub	r2, r2, #40
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #44
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, #488
	mov	r0, r3
	bl	runtime_assert
.L1028:
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-92]
	str	r3, [fp, #-88]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-84]
	str	r3, [fp, #-80]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L1029
	mov	r4, #1
	mov	r5, #0
.L1029:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-904]
	ldr	r3, [fp, #-904]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+32
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-904]
	cmp	r3, #0
	bne	.L1031
	sub	r1, fp, #92
	ldmia	r1, {r0-r1}
	sub	r3, fp, #84
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #52
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	sub	r2, r2, #48
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #52
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+32
	mov	r0, r3
	bl	runtime_assert
.L1031:
	mov	r2, #1
	mov	r3, #0
	str	r2, [fp, #-76]
	str	r3, [fp, #-72]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-68]
	str	r3, [fp, #-64]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L1032
	mov	r4, #1
	mov	r5, #0
.L1032:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-900]
	ldr	r3, [fp, #-900]
	cmp	r3, #1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+36
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-900]
	cmp	r3, #0
	bne	.L1034
	sub	r1, fp, #76
	ldmia	r1, {r0-r1}
	sub	r3, fp, #68
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4288
	sub	lr, lr, #60
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4288
	sub	r2, r2, #56
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4288
	sub	r1, r1, #60
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+36
	mov	r0, r3
	bl	runtime_assert
.L1034:
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-60]
	str	r3, [fp, #-56]
	mvn	r2, #0
	mvn	r3, #0
	str	r2, [fp, #-52]
	str	r3, [fp, #-48]
	mov	r2, #0
	mov	r3, #0
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	mov	r4, #0
	mov	r5, #0
	subs	r6, r0, r2
	sbcs	r7, r1, r3
	bcs	.L1035
	mov	r4, #1
	mov	r5, #0
.L1035:
	mov	r2, r6
	mov	r3, r7
	str	r2, [fp, #-44]
	str	r3, [fp, #-40]
	mov	r2, r4
	mov	r3, r5
	mov	r3, r2
	and	r3, r3, #1
	and	r3, r3, #255
	str	r3, [fp, #-896]
	ldr	r3, [fp, #-896]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+40
	mov	r0, r3
	bl	runtime_assert
	ldr	r3, [fp, #-896]
	cmp	r3, #0
	bne	.L1037
	sub	r1, fp, #60
	ldmia	r1, {r0-r1}
	sub	r3, fp, #52
	ldmia	r3, {r2-r3}
	subs	ip, r0, r2
	sub	lr, fp, #4352
	sub	lr, lr, #4
	str	ip, [lr]
	sbc	r3, r1, r3
	sub	r2, fp, #4352
	str	r3, [r2]
	sub	r3, fp, #44
	ldmia	r3, {r2-r3}
	sub	r1, fp, #4352
	sub	r1, r1, #4
	ldmia	r1, {r0-r1}
	cmp	r1, r3
	cmpeq	r0, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	ldr	r1, .L1059+40
	mov	r0, r3
	bl	runtime_assert
.L1037:
	mov	r3, #0
	ldr	r2, .L1059+44
	ldr	r1, [r2]
	ldr	r2, [fp, #-32]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L1039
	bl	__stack_chk_fail
.L1039:
	mov	r0, r3
	sub	sp, fp, #28
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, fp, pc}
.L1060:
	.align	2
.L1059:
	.word	473
	.word	474
	.word	477
	.word	478
	.word	479
	.word	482
	.word	483
	.word	485
	.word	489
	.word	490
	.word	491
	.word	.LC1
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
