	.file	"403304.c"
	.intel_syntax noprefix
	.text
	.globl	print_hash_value
	.data
	.align 4
	.type	print_hash_value, @object
	.size	print_hash_value, 4
print_hash_value:
	.long	1
	.text
	.type	platform_main_begin, @function
platform_main_begin:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	platform_main_begin, .-platform_main_begin
	.local	crc32_tab
	.comm	crc32_tab,1024,32
	.data
	.align 4
	.type	crc32_context, @object
	.size	crc32_context, 4
crc32_context:
	.long	-1
	.text
	.type	crc32_gentab, @function
crc32_gentab:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -4[rbp], -306674912
	mov	DWORD PTR -12[rbp], 0
	jmp	.L3
.L8:
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	DWORD PTR -8[rbp], 8
	jmp	.L4
.L7:
	mov	eax, DWORD PTR -16[rbp]
	and	eax, 1
	test	eax, eax
	je	.L5
	mov	eax, DWORD PTR -16[rbp]
	shr	eax
	xor	eax, DWORD PTR -4[rbp]
	mov	DWORD PTR -16[rbp], eax
	jmp	.L6
.L5:
	shr	DWORD PTR -16[rbp]
.L6:
	sub	DWORD PTR -8[rbp], 1
.L4:
	cmp	DWORD PTR -8[rbp], 0
	jg	.L7
	mov	eax, DWORD PTR -12[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rdx, crc32_tab[rip]
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR [rcx+rdx], eax
	add	DWORD PTR -12[rbp], 1
.L3:
	cmp	DWORD PTR -12[rbp], 255
	jle	.L8
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	crc32_gentab, .-crc32_gentab
	.type	crc32_byte, @function
crc32_byte:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	mov	eax, DWORD PTR crc32_context[rip]
	shr	eax, 8
	mov	ecx, eax
	movzx	edx, BYTE PTR -4[rbp]
	mov	eax, DWORD PTR crc32_context[rip]
	xor	eax, edx
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, crc32_tab[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	eax, ecx
	mov	DWORD PTR crc32_context[rip], eax
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	crc32_byte, .-crc32_byte
	.type	crc32_8bytes, @function
crc32_8bytes:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 8
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	crc32_byte
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	edi, eax
	call	crc32_byte
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	edi, eax
	call	crc32_byte
	mov	eax, DWORD PTR -4[rbp]
	shr	eax, 24
	movzx	eax, al
	mov	edi, eax
	call	crc32_byte
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	crc32_8bytes, .-crc32_8bytes
	.section	.rodata
	.align 8
.LC0:
	.string	"...checksum after hashing %s : %X\n"
	.text
	.type	transparent_crc, @function
transparent_crc:
.LFB4:
	.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	QWORD PTR -16[rbp], rsi
	mov	DWORD PTR -8[rbp], edx
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	call	crc32_8bytes
	cmp	DWORD PTR -8[rbp], 0
	je	.L13
	mov	eax, DWORD PTR crc32_context[rip]
	not	eax
	mov	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	rsi, rax
	lea	rdi, .LC0[rip]
	mov	eax, 0
	call	printf@PLT
.L13:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	transparent_crc, .-transparent_crc
	.section	.rodata
.LC1:
	.string	"checksum = %x\n"
	.text
	.type	platform_main_end, @function
platform_main_end:
.LFB5:
	.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 -8[rbp], 0
	jne	.L16
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	lea	rdi, .LC1[rip]
	mov	eax, 0
	call	printf@PLT
.L16:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	platform_main_end, .-platform_main_end
	.local	__undefined
	.comm	__undefined,8,8
	.data
	.align 4
	.type	g_2, @object
	.size	g_2, 4
g_2:
	.long	829504401
	.local	g_70
	.comm	g_70,4,4
	.align 4
	.type	g_114, @object
	.size	g_114, 4
g_114:
	.long	-3
	.align 2
	.type	g_127, @object
	.size	g_127, 2
g_127:
	.value	-28927
	.section	.data.rel.local,"aw"
	.align 8
	.type	g_190, @object
	.size	g_190, 8
g_190:
	.quad	g_70
	.align 8
	.type	g_189, @object
	.size	g_189, 8
g_189:
	.quad	g_190
	.data
	.align 2
	.type	g_222, @object
	.size	g_222, 2
g_222:
	.value	1
	.align 2
	.type	g_236, @object
	.size	g_236, 2
g_236:
	.value	23914
	.align 4
	.type	g_255, @object
	.size	g_255, 4
g_255:
	.long	1167611100
	.align 4
	.type	g_324, @object
	.size	g_324, 4
g_324:
	.long	1
	.align 4
	.type	g_423, @object
	.size	g_423, 4
g_423:
	.long	450943577
	.align 4
	.type	g_523, @object
	.size	g_523, 4
g_523:
	.long	-398385569
	.align 4
	.type	g_611, @object
	.size	g_611, 4
g_611:
	.long	-1452407309
	.text
	.type	func_1, @function
func_1:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	WORD PTR -26[rbp], -3
	mov	DWORD PTR -24[rbp], 0
	mov	edi, 446
	call	step_hash
	mov	DWORD PTR g_2[rip], 24
	jmp	.L18
.L19:
	mov	QWORD PTR -16[rbp], 0
	mov	DWORD PTR -20[rbp], 1885888596
	lea	rax, g_70[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	eax, DWORD PTR g_2[rip]
	sub	eax, 1
	mov	DWORD PTR g_2[rip], eax
.L18:
	mov	eax, DWORD PTR g_2[rip]
	cmp	eax, 2
	jne	.L19
	mov	edi, 447
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	func_1, .-func_1
	.type	func_8, @function
func_8:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	lea	rax, g_70[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	edi, 440
	call	step_hash
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 441
	call	step_hash
	mov	edx, DWORD PTR -24[rbp]
	mov	rax, QWORD PTR -8[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 442
	call	step_hash
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	eax, ax
	mov	edx, DWORD PTR g_423[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	movzx	ecx, al
	movzx	eax, WORD PTR g_127[rip]
	movsx	edx, ax
	cmp	QWORD PTR -8[rbp], 0
	setne	al
	movzx	eax, al
	cmp	edx, eax
	setl	al
	movzx	eax, al
	lea	edx, [rcx+rax]
	mov	eax, DWORD PTR g_255[rip]
	or	eax, edx
	mov	DWORD PTR g_255[rip], eax
	mov	edi, 443
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	QWORD PTR [rax], 0
	mov	edi, 444
	call	step_hash
	mov	rax, QWORD PTR -8[rbp]
	mov	eax, DWORD PTR [rax]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	func_8, .-func_8
	.type	func_15, @function
func_15:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r13
	push	r12
	push	rbx
	sub	rsp, 56
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	DWORD PTR -68[rbp], edi
	mov	DWORD PTR -72[rbp], esi
	mov	eax, edx
	mov	WORD PTR -76[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -60[rbp], 1778740927
	lea	rax, -60[rbp]
	mov	QWORD PTR -56[rbp], rax
	lea	rax, -56[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	edi, 437
	call	step_hash
	mov	eax, DWORD PTR g_324[rip]
	movzx	ebx, ax
	movsx	r12d, WORD PTR -76[rbp]
	movzx	eax, WORD PTR -76[rbp]
	movzx	edx, ax
	movsx	eax, WORD PTR -76[rbp]
	mov	esi, edx
	mov	edi, eax
	call	func_37
	movsx	r13d, WORD PTR -76[rbp]
	mov	eax, DWORD PTR g_2[rip]
	mov	ecx, eax
	mov	edx, DWORD PTR g_2[rip]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	esi, al
	lea	rax, -60[rbp]
	mov	r8d, ecx
	lea	rcx, g_2[rip]
	mov	rdi, rax
	call	func_47
	mov	rdx, rax
	lea	rsi, -60[rbp]
	lea	rax, -60[rbp]
	mov	ecx, r13d
	mov	rdi, rax
	call	func_42
	movsx	edx, ax
	mov	eax, DWORD PTR g_2[rip]
	cmp	edx, eax
	movsx	eax, WORD PTR -76[rbp]
	and	eax, 1
	mov	esi, r12d
	mov	edi, eax
	call	func_32
	mov	rcx, rax
	mov	rax, QWORD PTR -56[rbp]
	mov	edx, ebx
	mov	rsi, rcx
	mov	rdi, rax
	call	func_27
	mov	rsi, rax
	mov	eax, DWORD PTR -60[rbp]
	mov	edi, eax
	lea	rdx, -60[rbp]
	lea	rax, -60[rbp]
	mov	rcx, rdx
	mov	rdx, rax
	call	func_21
	cwde
	mov	edi, eax
	call	func_19
	mov	rdx, QWORD PTR -48[rbp]
	mov	QWORD PTR [rdx], rax
	mov	edi, 438
	call	step_hash
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rbx, QWORD PTR -40[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L25
	call	__stack_chk_fail@PLT
.L25:
	add	rsp, 56
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	func_15, .-func_15
	.type	func_19, @function
func_19:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 264
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	eax, edi
	mov	WORD PTR -292[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	lea	rax, g_523[rip]
	mov	QWORD PTR -240[rbp], rax
	mov	QWORD PTR -232[rbp], 0
	mov	WORD PTR -278[rbp], -10113
	lea	rax, g_255[rip]
	mov	QWORD PTR -224[rbp], rax
	mov	DWORD PTR -252[rbp], -1
	mov	BYTE PTR -282[rbp], -51
	mov	WORD PTR -276[rbp], 1
	mov	QWORD PTR -144[rbp], 0
	lea	rax, g_70[rip]
	mov	QWORD PTR -136[rbp], rax
	mov	edi, 434
	call	step_hash
	mov	DWORD PTR -260[rbp], 1633422177
	mov	DWORD PTR -272[rbp], 296088768
	lea	rax, -240[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	DWORD PTR -256[rbp], -2091765080
	mov	edi, 362
	call	step_hash
	cmp	DWORD PTR -260[rbp], 0
	je	.L27
	mov	DWORD PTR -216[rbp], 1
	mov	edi, 293
	call	step_hash
	mov	DWORD PTR g_70[rip], 0
	jmp	.L28
.L38:
	lea	rax, g_2[rip]
	mov	QWORD PTR -112[rbp], rax
	mov	edi, 279
	call	step_hash
	cmp	WORD PTR -292[rbp], 0
	je	.L29
	lea	rax, g_523[rip]
	mov	QWORD PTR -96[rbp], rax
	mov	edi, 274
	call	step_hash
	mov	eax, DWORD PTR -216[rbp]
	test	eax, eax
	jne	.L94
	mov	edi, 275
	call	step_hash
	mov	eax, DWORD PTR -216[rbp]
	movzx	ebx, ax
	mov	eax, DWORD PTR g_255[rip]
	movzx	r12d, ax
	movzx	eax, WORD PTR -292[rbp]
	movzx	eax, ax
	mov	esi, eax
	mov	edi, 0
	call	func_37
	movzx	eax, al
	sal	eax, 3
	mov	esi, r12d
	mov	edi, eax
	call	func_37
	movzx	eax, ax
	mov	edx, DWORD PTR g_2[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	movzx	eax, WORD PTR -292[rbp]
	neg	eax
	cwde
	movsx	ecx, WORD PTR -292[rbp]
	cdq
	idiv	ecx
	mov	eax, edx
	mov	esi, ebx
	mov	edi, eax
	call	func_37
	mov	rdx, QWORD PTR -96[rbp]
	mov	edx, DWORD PTR [rdx]
	cwde
	and	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 276
	call	step_hash
	cmp	WORD PTR -292[rbp], 0
	je	.L32
	jmp	.L33
.L29:
	lea	rax, g_2[rip]
	mov	QWORD PTR -104[rbp], rax
	mov	edi, 278
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR -104[rbp]
	mov	QWORD PTR [rax], rdx
.L32:
	mov	edi, 285
	call	step_hash
	mov	WORD PTR g_127[rip], 0
	jmp	.L34
.L35:
	mov	edi, 283
	call	step_hash
	cmp	QWORD PTR -112[rbp], 0
	sete	al
	movzx	edx, al
	movsx	eax, WORD PTR -292[rbp]
	cmp	edx, eax
	setle	al
	movzx	edx, al
	mov	eax, DWORD PTR -216[rbp]
	or	eax, edx
	mov	DWORD PTR -216[rbp], eax
	mov	edi, 284
	call	step_hash
	mov	eax, DWORD PTR g_255[rip]
	movsx	ebx, al
	movzx	eax, WORD PTR g_222[rip]
	movzx	edx, ax
	movzx	eax, WORD PTR g_127[rip]
	cwde
	mov	esi, edx
	mov	edi, eax
	call	func_37
	mov	edx, eax
	mov	eax, DWORD PTR g_2[rip]
	test	eax, eax
	sete	al
	movzx	eax, al
	or	eax, edx
	movsx	eax, al
	mov	ecx, eax
	sal	ebx, cl
	mov	eax, ebx
	movzx	eax, al
	imul	edx, eax, 87
	mov	eax, DWORD PTR -272[rbp]
	and	eax, edx
	mov	DWORD PTR -272[rbp], eax
	movzx	eax, WORD PTR g_127[rip]
	sub	eax, 2
	mov	WORD PTR g_127[rip], ax
.L34:
	movzx	eax, WORD PTR g_127[rip]
	cmp	ax, -1
	jl	.L35
	mov	edi, 291
	call	step_hash
	mov	WORD PTR g_236[rip], 0
	jmp	.L36
.L37:
	mov	edi, 289
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR -240[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 290
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	movzx	eax, WORD PTR g_236[rip]
	sub	eax, 1
	mov	WORD PTR g_236[rip], ax
.L36:
	movzx	eax, WORD PTR g_236[rip]
	cmp	ax, -1
	jge	.L37
	mov	edi, 292
	call	step_hash
	cmp	WORD PTR -292[rbp], 0
.L33:
	mov	eax, DWORD PTR g_70[rip]
	sub	eax, 1
	mov	DWORD PTR g_70[rip], eax
.L28:
	mov	eax, DWORD PTR g_70[rip]
	cmp	eax, -30
	jl	.L38
	jmp	.L39
.L27:
	mov	BYTE PTR -283[rbp], 1
	lea	rax, -272[rbp]
	mov	QWORD PTR -176[rbp], rax
	lea	rax, g_255[rip]
	mov	QWORD PTR -168[rbp], rax
	mov	edi, 334
	call	step_hash
	movzx	eax, WORD PTR g_222[rip]
	movsx	edx, ax
	mov	eax, DWORD PTR -272[rbp]
	cmp	edx, eax
	je	.L40
	mov	BYTE PTR -285[rbp], 0
	mov	edi, 296
	call	step_hash
	mov	rax, QWORD PTR -240[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -232[rbp]
	lea	rdx, g_190[rip]
	cmp	rax, rdx
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -240[rbp]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 320
	call	step_hash
	mov	eax, DWORD PTR g_523[rip]
	test	eax, eax
	setne	al
	movzx	eax, al
	cmp	DWORD PTR -260[rbp], eax
	setne	al
	movzx	ebx, al
	mov	eax, DWORD PTR g_2[rip]
	movzx	eax, ax
	mov	edx, DWORD PTR g_70[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	cwde
	and	ebx, eax
	mov	edx, ebx
	movsx	eax, WORD PTR -292[rbp]
	cmp	edx, eax
	je	.L41
	mov	WORD PTR -280[rbp], -25054
	mov	edi, 302
	call	step_hash
	mov	WORD PTR g_222[rip], 0
	jmp	.L42
.L45:
	mov	BYTE PTR -281[rbp], 111
	mov	edi, 301
	call	step_hash
	cmp	BYTE PTR -281[rbp], 0
	jne	.L95
	movzx	eax, WORD PTR g_222[rip]
	add	eax, 1
	mov	WORD PTR g_222[rip], ax
.L42:
	movzx	eax, WORD PTR g_222[rip]
	cmp	ax, 8
	je	.L45
	jmp	.L44
.L95:
	nop
.L44:
	mov	edi, 307
	call	step_hash
	mov	DWORD PTR g_255[rip], 0
	jmp	.L46
.L47:
	mov	edi, 306
	call	step_hash
	lea	rax, g_190[rip]
	mov	QWORD PTR g_189[rip], rax
	mov	eax, DWORD PTR g_255[rip]
	sub	eax, 1
	mov	DWORD PTR g_255[rip], eax
.L46:
	mov	eax, DWORD PTR g_255[rip]
	cmp	eax, -5
	je	.L47
	mov	edi, 308
	call	step_hash
	mov	rax, QWORD PTR -240[rbp]
	mov	ecx, DWORD PTR [rax]
	movsx	edx, WORD PTR -292[rbp]
	mov	rax, QWORD PTR -240[rbp]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 309
	call	step_hash
	movsx	eax, BYTE PTR -285[rbp]
	add	eax, eax
	xor	WORD PTR -280[rbp], ax
	jmp	.L48
.L41:
	mov	BYTE PTR -284[rbp], -49
	lea	rax, -272[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	edi, 318
	call	step_hash
	mov	eax, DWORD PTR -272[rbp]
	test	eax, eax
	je	.L49
	lea	rax, -240[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	edi, 312
	call	step_hash
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR [rax]
	lea	rax, g_190[rip]
	cmp	QWORD PTR -200[rbp], rax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -200[rbp]
	mov	rax, QWORD PTR [rax]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 313
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	lea	rdx, g_255[rip]
	mov	QWORD PTR [rax], rdx
	mov	edi, 314
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	and	edx, 387987194
	mov	DWORD PTR [rax], edx
	mov	edi, 315
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L50
.L49:
	lea	rax, g_523[rip]
	mov	QWORD PTR -192[rbp], rax
	mov	edi, 317
	call	step_hash
	movsx	r14d, WORD PTR -292[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	r13, QWORD PTR [rax]
	movsx	r12d, WORD PTR -278[rbp]
	movzx	eax, WORD PTR -292[rbp]
	movsx	ebx, al
	mov	eax, DWORD PTR g_324[rip]
	mov	r15d, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	movzx	eax, ax
	mov	esi, eax
	mov	edi, 0
	call	func_37
	movzx	edx, BYTE PTR -284[rbp]
	mov	eax, DWORD PTR g_324[rip]
	cmp	edx, eax
	setne	al
	movzx	esi, al
	mov	rdx, QWORD PTR -192[rbp]
	lea	rax, -272[rbp]
	mov	r8d, r15d
	mov	rcx, rdx
	mov	edx, 0
	mov	rdi, rax
	call	func_47
	mov	r8d, r14d
	mov	rcx, r13
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	func_47
	mov	QWORD PTR -208[rbp], rax
.L50:
	mov	edi, 319
	call	step_hash
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -208[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L48
.L40:
	mov	DWORD PTR -264[rbp], -1504920082
	lea	rax, -272[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	edi, 326
	call	step_hash
	mov	DWORD PTR g_114[rip], 17
	jmp	.L51
.L52:
	mov	DWORD PTR -268[rbp], -286382318
	mov	QWORD PTR -184[rbp], 0
	mov	edi, 325
	call	step_hash
	movzx	eax, WORD PTR -292[rbp]
	and	eax, 1
	mov	BYTE PTR -283[rbp], al
	mov	eax, DWORD PTR g_114[rip]
	sub	eax, 1
	mov	DWORD PTR g_114[rip], eax
.L51:
	mov	eax, DWORD PTR g_114[rip]
	cmp	eax, -21
	je	.L52
	mov	edi, 331
	call	step_hash
	mov	DWORD PTR g_70[rip], 15
	nop
	mov	eax, DWORD PTR g_70[rip]
	cmp	eax, -14
	je	.L93
	mov	edi, 330
	call	step_hash
	lea	rax, g_255[rip]
	jmp	.L91
.L93:
	mov	edi, 332
	call	step_hash
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -160[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 333
	call	step_hash
	mov	rdx, QWORD PTR -240[rbp]
	mov	rax, QWORD PTR -240[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
.L48:
	mov	edi, 356
	call	step_hash
	mov	DWORD PTR g_423[rip], 6
	jmp	.L56
.L66:
	lea	rax, g_523[rip]
	mov	QWORD PTR -128[rbp], rax
	mov	edi, 348
	call	step_hash
	mov	DWORD PTR -272[rbp], 13
	jmp	.L57
.L65:
	mov	QWORD PTR -120[rbp], 0
	mov	edi, 346
	call	step_hash
	movzx	eax, WORD PTR -292[rbp]
	movzx	eax, ax
	mov	esi, eax
	mov	edi, 1
	call	func_37
	test	ax, ax
	je	.L58
	mov	DWORD PTR -248[rbp], 1398216069
	mov	edi, 342
	call	step_hash
	movzx	eax, WORD PTR g_222[rip]
	cwde
	mov	esi, 0
	mov	edi, eax
	call	func_37
	cmp	WORD PTR -292[rbp], ax
	je	.L59
	movzx	eax, WORD PTR -292[rbp]
	mov	edx, eax
	mov	eax, 2
	movzx	eax, al
	div	dl
	movzx	edx, al
	mov	eax, DWORD PTR g_114[rip]
	cmp	edx, eax
	jg	.L60
.L59:
	mov	eax, 1
	jmp	.L61
.L60:
	mov	eax, 0
.L61:
	movzx	eax, al
	sal	eax, 7
	mov	DWORD PTR -248[rbp], eax
	mov	edi, 343
	call	step_hash
	mov	rax, QWORD PTR -120[rbp]
	mov	QWORD PTR -176[rbp], rax
	jmp	.L62
.L58:
	mov	edi, 345
	call	step_hash
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR -168[rbp]
	mov	QWORD PTR [rax], rdx
.L62:
	mov	edi, 347
	call	step_hash
	cmp	WORD PTR -292[rbp], 0
	jne	.L96
	mov	eax, DWORD PTR -272[rbp]
	sub	eax, 2
	mov	DWORD PTR -272[rbp], eax
.L57:
	mov	eax, DWORD PTR -272[rbp]
	cmp	eax, -22
	jl	.L65
	jmp	.L64
.L96:
	nop
.L64:
	mov	eax, DWORD PTR g_423[rip]
	add	eax, 7
	mov	DWORD PTR g_423[rip], eax
.L56:
	mov	eax, DWORD PTR g_423[rip]
	cmp	eax, 18
	jle	.L66
	mov	edi, 361
	call	step_hash
	mov	WORD PTR -292[rbp], 0
	jmp	.L67
.L68:
	mov	edi, 360
	call	step_hash
	mov	rax, QWORD PTR -152[rbp]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	movzx	eax, WORD PTR -292[rbp]
	add	eax, 1
	mov	WORD PTR -292[rbp], ax
.L67:
	cmp	WORD PTR -292[rbp], 6
	je	.L68
	jmp	.L39
.L94:
	nop
.L39:
	mov	edi, 397
	call	step_hash
	mov	WORD PTR -292[rbp], -18
	jmp	.L69
.L90:
	mov	QWORD PTR -216[rbp], 0
	mov	QWORD PTR -88[rbp], 0
	mov	edi, 395
	call	step_hash
	mov	DWORD PTR g_324[rip], 0
	jmp	.L70
.L87:
	lea	rax, g_2[rip]
	mov	QWORD PTR -80[rbp], rax
	lea	rax, g_523[rip]
	mov	QWORD PTR -72[rbp], rax
	mov	edi, 380
	call	step_hash
	mov	WORD PTR g_236[rip], 0
	jmp	.L71
.L79:
	lea	rax, -240[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	edi, 376
	call	step_hash
	mov	DWORD PTR g_423[rip], -7
	jmp	.L72
.L73:
	mov	edi, 375
	call	step_hash
	mov	rdx, QWORD PTR -216[rbp]
	mov	rax, QWORD PTR -152[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR g_423[rip]
	sub	eax, 8
	mov	DWORD PTR g_423[rip], eax
.L72:
	mov	eax, DWORD PTR g_423[rip]
	cmp	eax, -28
	je	.L73
	mov	edi, 377
	call	step_hash
	mov	rdx, QWORD PTR -224[rbp]
	mov	rax, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	edi, 378
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
	mov	esi, DWORD PTR [rax]
	cmp	QWORD PTR -64[rbp], 0
	je	.L74
	cmp	WORD PTR -292[rbp], 0
	je	.L75
.L74:
	mov	eax, 1
	jmp	.L76
.L75:
	mov	eax, 0
.L76:
	movzx	edx, al
	mov	eax, DWORD PTR g_70[rip]
	movzx	eax, al
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	test	eax, eax
	je	.L77
	mov	eax, DWORD PTR g_2[rip]
	test	eax, eax
	je	.L77
	mov	eax, 1
	jmp	.L78
.L77:
	mov	eax, 0
.L78:
	cmp	eax, 64483
	sete	al
	movzx	edx, al
	mov	eax, DWORD PTR g_324[rip]
	cmp	edx, eax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -224[rbp]
	and	edx, esi
	mov	DWORD PTR [rax], edx
	mov	edi, 379
	call	step_hash
	lea	rax, -224[rbp]
	mov	QWORD PTR -88[rbp], rax
	movzx	eax, WORD PTR g_236[rip]
	sub	eax, 1
	mov	WORD PTR g_236[rip], ax
.L71:
	movzx	eax, WORD PTR g_236[rip]
	cmp	ax, -3
	jge	.L79
	mov	edi, 392
	call	step_hash
	mov	WORD PTR g_127[rip], 0
	jmp	.L80
.L85:
	mov	WORD PTR -274[rbp], 18544
	mov	edi, 384
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	and	edx, 9
	mov	DWORD PTR [rax], edx
	mov	edi, 385
	call	step_hash
	cmp	WORD PTR -274[rbp], 0
	jne	.L97
	mov	edi, 391
	call	step_hash
	mov	esi, 0
	mov	edi, 0
	call	func_37
	movsx	edx, al
	movzx	eax, WORD PTR g_127[rip]
	movsx	eax, al
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cmp	eax, 2
	setbe	al
	movzx	edx, al
	mov	eax, DWORD PTR -256[rbp]
	mov	ecx, eax
	mov	eax, DWORD PTR -252[rbp]
	add	eax, ecx
	movzx	eax, ax
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	test	eax, eax
	je	.L83
	mov	edi, 387
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR -72[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L84
.L83:
	mov	DWORD PTR -244[rbp], -1
	mov	edi, 389
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
	mov	DWORD PTR [rax], 909813272
	mov	edi, 390
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -244[rbp], eax
.L84:
	movzx	eax, WORD PTR g_127[rip]
	add	eax, 8
	mov	WORD PTR g_127[rip], ax
.L80:
	movzx	eax, WORD PTR g_127[rip]
	cmp	ax, 14
	jg	.L85
	jmp	.L82
.L97:
	nop
.L82:
	mov	edi, 393
	call	step_hash
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 394
	call	step_hash
	movzx	eax, WORD PTR g_236[rip]
	test	ax, ax
	mov	eax, DWORD PTR g_324[rip]
	add	eax, 7
	mov	DWORD PTR g_324[rip], eax
.L70:
	mov	eax, DWORD PTR g_324[rip]
	cmp	eax, 4
	je	.L87
	mov	edi, 396
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L98
	movzx	eax, WORD PTR -292[rbp]
	add	eax, 6
	mov	WORD PTR -292[rbp], ax
.L69:
	cmp	WORD PTR -292[rbp], -9
	jl	.L90
	jmp	.L89
.L98:
	nop
.L89:
	mov	edi, 398
	call	step_hash
	mov	eax, DWORD PTR g_70[rip]
	xor	eax, -41430566
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 435
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
	movsx	edx, WORD PTR -292[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 436
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
.L91:
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L92
	call	__stack_chk_fail@PLT
.L92:
	add	rsp, 264
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	func_19, .-func_19
	.type	func_21, @function
func_21:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -36[rbp], edi
	mov	QWORD PTR -48[rbp], rsi
	mov	QWORD PTR -56[rbp], rdx
	mov	QWORD PTR -64[rbp], rcx
	mov	DWORD PTR -24[rbp], 1237008314
	lea	rax, g_189[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	edi, 259
	call	step_hash
	mov	DWORD PTR -36[rbp], 23
	jmp	.L100
.L103:
	mov	edi, 256
	call	step_hash
	mov	edx, DWORD PTR g_70[rip]
	mov	eax, DWORD PTR g_114[rip]
	xor	eax, edx
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 257
	call	step_hash
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L109
	mov	edi, 258
	call	step_hash
	mov	eax, DWORD PTR g_423[rip]
	cmp	DWORD PTR -24[rbp], eax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L102
.L109:
	nop
.L102:
	add	DWORD PTR -36[rbp], 1
.L100:
	cmp	DWORD PTR -36[rbp], 43
	ja	.L103
	mov	edi, 265
	call	step_hash
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L104
	mov	DWORD PTR -20[rbp], 1
	mov	QWORD PTR -8[rbp], 0
	mov	edi, 261
	call	step_hash
	mov	eax, DWORD PTR -36[rbp]
	test	al, al
	setg	al
	movzx	eax, al
	mov	edx, DWORD PTR -20[rbp]
	movsx	esi, dx
	cdq
	idiv	esi
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	eax, DWORD PTR -36[rbp]
	movzx	eax, ax
	add	eax, edx
	mov	DWORD PTR -24[rbp], eax
	mov	edi, 262
	call	step_hash
	mov	eax, DWORD PTR g_255[rip]
	movzx	edx, al
	mov	rax, QWORD PTR -8[rbp]
	cmp	rax, QWORD PTR -16[rbp]
	je	.L105
	mov	ecx, -40456
	jmp	.L106
.L105:
	mov	ecx, -20228
.L106:
	mov	eax, DWORD PTR g_70[rip]
	cmp	ecx, eax
	setl	al
	movzx	esi, al
	mov	eax, DWORD PTR -20[rbp]
	movzx	edi, al
	mov	eax, DWORD PTR -36[rbp]
	movzx	eax, al
	mov	ecx, eax
	sar	edi, cl
	mov	eax, edi
	cmp	esi, eax
	sete	al
	movzx	eax, al
	imul	edx, eax
	mov	eax, DWORD PTR g_255[rip]
	cmp	edx, eax
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L107
.L104:
	mov	edi, 264
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	QWORD PTR [rax], 0
.L107:
	mov	edi, 266
	call	step_hash
	mov	eax, DWORD PTR -36[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	func_21, .-func_21
	.type	func_27, @function
func_27:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	QWORD PTR -40[rbp], rdi
	mov	QWORD PTR -48[rbp], rsi
	mov	eax, edx
	mov	WORD PTR -52[rbp], ax
	lea	rax, g_2[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -32[rbp], -359637220
	lea	rax, g_70[rip]
	mov	QWORD PTR -16[rbp], rax
	mov	edi, 242
	call	step_hash
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -48[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 250
	call	step_hash
	mov	WORD PTR g_236[rip], -25
	nop
	movzx	eax, WORD PTR g_236[rip]
	cmp	ax, -16
	jl	.L113
	mov	DWORD PTR -28[rbp], -5
	mov	QWORD PTR -8[rbp], 0
	mov	edi, 246
	call	step_hash
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 247
	call	step_hash
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L116
	mov	edi, 248
	call	step_hash
	mov	rax, QWORD PTR -16[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	ecx, WORD PTR -52[rbp]
	mov	edx, DWORD PTR g_114[rip]
	xor	edx, ecx
	or	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 249
	call	step_hash
	mov	rax, QWORD PTR -8[rbp]
	jmp	.L114
.L116:
	nop
.L113:
	mov	edi, 251
	call	step_hash
	mov	rax, QWORD PTR -16[rbp]
.L114:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	func_27, .-func_27
	.type	func_32, @function
func_32:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 184
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR -212[rbp], edi
	mov	DWORD PTR -216[rbp], esi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	lea	rax, g_255[rip]
	mov	QWORD PTR -168[rbp], rax
	mov	DWORD PTR -192[rbp], -3
	lea	rax, g_189[rip]
	mov	QWORD PTR -160[rbp], rax
	mov	QWORD PTR -152[rbp], 0
	mov	edi, 238
	call	step_hash
	mov	DWORD PTR -212[rbp], 0
	jmp	.L118
.L150:
	mov	BYTE PTR -198[rbp], 3
	lea	rax, g_189[rip]
	mov	QWORD PTR -144[rbp], rax
	lea	rax, g_70[rip]
	mov	QWORD PTR -136[rbp], rax
	mov	edi, 232
	call	step_hash
	mov	DWORD PTR g_70[rip], 0
	jmp	.L119
.L142:
	lea	rax, g_189[rip]
	mov	QWORD PTR -120[rbp], rax
	mov	BYTE PTR -197[rbp], -72
	mov	DWORD PTR -188[rbp], 1
	mov	BYTE PTR -196[rbp], 1
	mov	WORD PTR -194[rbp], -2673
	mov	DWORD PTR -184[rbp], -449860564
	mov	edi, 199
	call	step_hash
	lea	rax, -216[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	edi, 231
	call	step_hash
	cmp	BYTE PTR -198[rbp], 0
	je	.L120
	lea	rax, -168[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	edi, 201
	call	step_hash
	mov	rax, QWORD PTR -120[rbp]
	cmp	rax, QWORD PTR -144[rbp]
	setne	al
	movzx	ebx, al
	cmp	QWORD PTR -64[rbp], 0
	sete	al
	movzx	eax, al
	mov	esi, DWORD PTR -216[rbp]
	cdq
	idiv	esi
	cmp	DWORD PTR -212[rbp], eax
	seta	al
	movzx	eax, al
	mov	esi, 0
	mov	edi, eax
	call	func_37
	movsx	eax, al
	and	eax, 68
	mov	edx, eax
	movzx	eax, WORD PTR g_236[rip]
	movsx	eax, al
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cdqe
	and	eax, 247
	or	rax, rbx
	mov	edx, eax
	mov	eax, DWORD PTR -192[rbp]
	or	eax, edx
	mov	DWORD PTR -192[rbp], eax
	jmp	.L121
.L120:
	mov	DWORD PTR -180[rbp], -1
	lea	rax, g_2[rip]
	mov	QWORD PTR -112[rbp], rax
	lea	rax, g_189[rip]
	mov	QWORD PTR -104[rbp], rax
	lea	rax, g_255[rip]
	mov	QWORD PTR -96[rbp], rax
	mov	edi, 223
	call	step_hash
	movzx	eax, BYTE PTR -197[rbp]
	movzx	ecx, BYTE PTR -197[rbp]
	cmp	DWORD PTR -180[rbp], 1
	setbe	dl
	movzx	edx, dl
	or	edx, ecx
	test	edx, edx
	setne	dl
	movzx	edx, dl
	mov	ecx, edx
	mov	edx, DWORD PTR -188[rbp]
	or	ecx, edx
	mov	edx, DWORD PTR g_2[rip]
	and	edx, ecx
	movzx	edx, dx
	sub	eax, edx
	cmp	eax, 1
	jg	.L122
	mov	edi, 204
	call	step_hash
	mov	rax, QWORD PTR -112[rbp]
	jmp	.L151
.L122:
	mov	DWORD PTR -176[rbp], 881977540
	lea	rax, g_255[rip]
	mov	QWORD PTR -88[rbp], rax
	mov	DWORD PTR -172[rbp], 0
	mov	edi, 212
	call	step_hash
	mov	DWORD PTR -216[rbp], 0
	jmp	.L124
.L127:
	lea	rax, g_190[rip]
	mov	QWORD PTR -80[rbp], rax
	lea	rax, -192[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	edi, 209
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	lea	rdx, -216[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 210
	call	step_hash
	cmp	QWORD PTR -80[rbp], 0
	setne	al
	movzx	ebx, al
	mov	eax, DWORD PTR -212[rbp]
	movzx	eax, ax
	mov	esi, eax
	mov	edi, 1008
	call	func_37
	cwde
	mov	esi, DWORD PTR g_2[rip]
	cdq
	idiv	esi
	xor	eax, ebx
	movsx	rdx, eax
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	cdqe
	and	eax, 851974015
	cmp	rdx, rax
	jg	.L125
	mov	eax, DWORD PTR g_324[rip]
	movzx	eax, ax
	mov	edx, DWORD PTR -216[rbp]
	movzx	esi, dl
	mov	edx, DWORD PTR g_70[rip]
	movzx	edx, dl
	mov	ecx, edx
	sar	esi, cl
	mov	edx, esi
	mov	esi, eax
	mov	edi, edx
	call	func_37
	test	ax, ax
	je	.L125
	mov	eax, 1
	jmp	.L126
.L125:
	mov	eax, 0
.L126:
	movsx	edx, al
	mov	eax, DWORD PTR -176[rbp]
	movsx	eax, al
	add	edx, eax
	mov	rax, QWORD PTR -72[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 211
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	r13, QWORD PTR [rax]
	mov	r12d, DWORD PTR g_114[rip]
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	movsx	ebx, al
	mov	rax, QWORD PTR -144[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	mov	edi, eax
	mov	eax, DWORD PTR g_114[rip]
	mov	edx, eax
	mov	eax, edx
	add	eax, eax
	add	eax, edx
	movsx	edx, al
	mov	eax, DWORD PTR -216[rbp]
	movsx	eax, al
	imul	edx, eax
	movzx	eax, WORD PTR g_222[rip]
	movsx	esi, al
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	rcx, QWORD PTR -88[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	func_47
	mov	rdi, rax
	mov	rax, QWORD PTR -120[rbp]
	mov	r14, QWORD PTR [rax]
	mov	eax, DWORD PTR -212[rbp]
	mov	r8d, eax
	mov	rcx, r13
	mov	edx, r12d
	mov	esi, ebx
	call	func_47
	mov	QWORD PTR [r14], rax
	mov	eax, DWORD PTR -216[rbp]
	add	eax, 2
	mov	DWORD PTR -216[rbp], eax
.L124:
	mov	eax, DWORD PTR -216[rbp]
	cmp	eax, 3
	jle	.L127
	mov	edi, 213
	call	step_hash
	mov	eax, DWORD PTR -216[rbp]
	test	eax, eax
	je	.L128
	mov	eax, DWORD PTR -212[rbp]
	mov	ecx, eax
	movsx	eax, cx
	imul	eax, eax, 18725
	shr	eax, 16
	sar	ax
	mov	edx, ecx
	sar	dx, 15
	sub	eax, edx
	mov	edx, eax
	sal	edx, 3
	sub	edx, eax
	mov	eax, ecx
	sub	eax, edx
	test	ax, ax
	je	.L128
	mov	eax, 1
	jmp	.L129
.L128:
	mov	eax, 0
.L129:
	sar	al, 6
	mov	edx, eax
	mov	rax, QWORD PTR -168[rbp]
	movsx	edx, dl
	mov	DWORD PTR [rax], edx
	mov	edi, 221
	call	step_hash
	cmp	DWORD PTR -212[rbp], 0
	je	.L130
	mov	edi, 215
	call	step_hash
	mov	eax, DWORD PTR g_423[rip]
	test	eax, eax
	sete	al
	movzx	edx, al
	mov	eax, DWORD PTR g_423[rip]
	cmp	edx, eax
	setl	al
	movzx	edx, al
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 216
	call	step_hash
	mov	eax, DWORD PTR g_114[rip]
	test	eax, eax
	je	.L131
	jmp	.L121
.L130:
	mov	BYTE PTR -195[rbp], -9
	mov	edi, 218
	call	step_hash
	mov	rax, QWORD PTR -168[rbp]
	mov	ecx, DWORD PTR [rax]
	movzx	edx, BYTE PTR -195[rbp]
	mov	rax, QWORD PTR -168[rbp]
	and	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 219
	call	step_hash
	movzx	eax, WORD PTR g_222[rip]
	movsx	edx, ax
	mov	ecx, DWORD PTR g_324[rip]
	mov	eax, DWORD PTR -216[rbp]
	cmp	ecx, eax
	setg	al
	movzx	eax, al
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	sar	al, 6
	movsx	edx, al
	mov	eax, DWORD PTR -192[rbp]
	or	eax, edx
	mov	DWORD PTR -192[rbp], eax
	mov	edi, 220
	call	step_hash
	mov	edx, DWORD PTR -172[rbp]
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
.L131:
	mov	edi, 222
	call	step_hash
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	and	edx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 229
	call	step_hash
	mov	DWORD PTR g_423[rip], 0
	jmp	.L132
.L134:
	mov	edi, 227
	call	step_hash
	mov	r12d, DWORD PTR -216[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	ebx, al
	mov	eax, DWORD PTR g_255[rip]
	mov	DWORD PTR -220[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	mov	r13d, DWORD PTR [rax]
	mov	eax, DWORD PTR g_70[rip]
	movzx	r14d, ax
	movzx	eax, WORD PTR -194[rbp]
	movzx	r15d, ax
	mov	eax, DWORD PTR -212[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR g_236[rip]
	cwde
	mov	esi, edx
	mov	edi, eax
	call	func_37
	test	ax, ax
	setne	al
	movzx	edx, al
	movsx	eax, BYTE PTR -196[rbp]
	or	eax, edx
	mov	esi, r15d
	mov	edi, eax
	call	func_37
	shr	al, 4
	movzx	eax, al
	mov	esi, r14d
	mov	edi, eax
	call	func_37
	movsx	eax, al
	mov	edx, DWORD PTR -212[rbp]
	mov	r8d, edx
	lea	rcx, g_255[rip]
	mov	edx, r13d
	mov	esi, eax
	lea	rdi, g_2[rip]
	call	func_47
	mov	rdx, rax
	mov	eax, DWORD PTR -212[rbp]
	mov	r8d, DWORD PTR -220[rbp]
	mov	rcx, rdx
	mov	edx, eax
	mov	esi, 0
	lea	rdi, g_2[rip]
	call	func_47
	mov	rdi, rax
	mov	rax, QWORD PTR -104[rbp]
	mov	r13, QWORD PTR [rax]
	mov	edx, DWORD PTR -212[rbp]
	mov	rax, QWORD PTR -96[rbp]
	mov	r8d, edx
	mov	rcx, rax
	mov	edx, r12d
	mov	esi, ebx
	call	func_47
	mov	QWORD PTR 0[r13], rax
	mov	edi, 228
	call	step_hash
	mov	rax, QWORD PTR g_190[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	mov	eax, DWORD PTR g_423[rip]
	add	eax, 1
	mov	DWORD PTR g_423[rip], eax
.L132:
	mov	eax, DWORD PTR g_423[rip]
	test	eax, eax
	je	.L134
	mov	edi, 230
	call	step_hash
	mov	eax, DWORD PTR -216[rbp]
	movzx	edx, ax
	cmp	QWORD PTR -160[rbp], 0
	sete	al
	movzx	eax, al
	mov	esi, edx
	mov	edi, eax
	call	func_37
	test	ax, ax
	jne	.L135
	movzx	r12d, BYTE PTR -198[rbp]
	mov	eax, DWORD PTR -212[rbp]
	movzx	ebx, ax
	mov	rax, QWORD PTR -104[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	sete	al
	movzx	r13d, al
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	eax, ax
	mov	edx, DWORD PTR -216[rbp]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	movzx	eax, ax
	imul	eax, eax, 24935
	shr	eax, 16
	shr	ax, 13
	xor	eax, r13d
	movzx	edx, ax
	mov	eax, DWORD PTR -216[rbp]
	movzx	eax, ax
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	edx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR -212[rbp]
	or	eax, edx
	movzx	eax, ax
	mov	rdx, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	movsx	edx, ax
	mov	eax, DWORD PTR g_255[rip]
	xor	eax, edx
	mov	esi, ebx
	mov	edi, eax
	call	func_37
	movsx	edx, ax
	mov	eax, DWORD PTR -184[rbp]
	cwde
	imul	eax, edx
	test	eax, eax
	je	.L136
	mov	rax, QWORD PTR -96[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L136
	mov	eax, 1
	jmp	.L137
.L136:
	mov	eax, 0
.L137:
	not	eax
	mov	edx, eax
	mov	eax, DWORD PTR g_2[rip]
	cmp	edx, eax
	jg	.L138
	mov	eax, -38813
	jmp	.L139
.L138:
	mov	eax, -38814
.L139:
	cmp	eax, r12d
	jle	.L140
.L135:
	mov	edx, 1
	jmp	.L141
.L140:
	mov	edx, 0
.L141:
	mov	eax, DWORD PTR g_255[rip]
	xor	edx, eax
	mov	rax, QWORD PTR -96[rbp]
	mov	DWORD PTR [rax], edx
.L121:
	mov	eax, DWORD PTR g_70[rip]
	add	eax, 1
	mov	DWORD PTR g_70[rip], eax
.L119:
	mov	eax, DWORD PTR g_70[rip]
	cmp	eax, 3
	je	.L142
	mov	edi, 237
	call	step_hash
	mov	eax, DWORD PTR g_114[rip]
	sar	al, 2
	movsx	r12d, al
	mov	eax, DWORD PTR g_255[rip]
	sar	al, 2
	movsx	eax, al
	lea	edx, -424868573[rax]
	mov	eax, DWORD PTR g_324[rip]
	cmp	edx, eax
	je	.L143
	mov	eax, DWORD PTR g_114[rip]
	test	eax, eax
	je	.L143
	mov	eax, 1
	jmp	.L144
.L143:
	mov	eax, 0
.L144:
	movzx	ebx, ax
	mov	rax, QWORD PTR -160[rbp]
	cmp	rax, QWORD PTR -152[rbp]
	je	.L145
	mov	eax, DWORD PTR g_423[rip]
	test	eax, eax
	je	.L146
.L145:
	mov	eax, 1
	jmp	.L147
.L146:
	mov	eax, 0
.L147:
	movsx	dx, al
	mov	rax, QWORD PTR -152[rbp]
	cmp	rax, QWORD PTR -144[rbp]
	sete	al
	movzx	ecx, al
	mov	eax, edx
	sub	eax, ecx
	movzx	eax, ax
	mov	edx, DWORD PTR -216[rbp]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	cwde
	mov	esi, ebx
	mov	edi, eax
	call	func_37
	cwde
	cmp	r12d, eax
	je	.L148
	mov	edi, 234
	call	step_hash
	mov	rax, QWORD PTR -168[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR g_2[rip]
	mov	ecx, eax
	mov	eax, 1
	sub	eax, ecx
	movzx	eax, ax
	sal	eax, 14
	mov	ecx, eax
	mov	rax, QWORD PTR -168[rbp]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	jmp	.L149
.L148:
	lea	rax, g_70[rip]
	mov	QWORD PTR -128[rbp], rax
	mov	edi, 236
	call	step_hash
	mov	eax, DWORD PTR -216[rbp]
	movsx	edx, al
	mov	rax, QWORD PTR -128[rbp]
	mov	DWORD PTR [rax], edx
.L149:
	add	DWORD PTR -212[rbp], 1
.L118:
	cmp	DWORD PTR -212[rbp], 27
	ja	.L150
	mov	edi, 239
	call	step_hash
	mov	rax, QWORD PTR -168[rbp]
	mov	ecx, DWORD PTR [rax]
	movzx	eax, WORD PTR g_222[rip]
	movsx	edx, ax
	mov	rax, QWORD PTR -168[rbp]
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 240
	call	step_hash
	lea	rax, g_2[rip]
.L151:
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L152
	call	__stack_chk_fail@PLT
.L152:
	add	rsp, 184
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	func_32, .-func_32
	.type	func_37, @function
func_37:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	eax, esi
	mov	WORD PTR -24[rbp], ax
	mov	DWORD PTR -8[rbp], 446861578
	mov	DWORD PTR -4[rbp], 1191382979
	mov	edi, 6
	call	step_hash
	mov	eax, DWORD PTR -8[rbp]
	xor	DWORD PTR -4[rbp], eax
	mov	edi, 7
	call	step_hash
	movzx	eax, WORD PTR -24[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	func_37, .-func_37
	.type	func_42, @function
func_42:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r15
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 424
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	QWORD PTR -424[rbp], rdi
	mov	QWORD PTR -432[rbp], rsi
	mov	QWORD PTR -440[rbp], rdx
	mov	eax, ecx
	mov	WORD PTR -444[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -56[rbp], rax
	xor	eax, eax
	mov	BYTE PTR -397[rbp], -1
	mov	BYTE PTR -401[rbp], 126
	mov	DWORD PTR -368[rbp], -902660408
	mov	BYTE PTR -396[rbp], 21
	lea	rax, g_190[rip]
	mov	QWORD PTR -280[rbp], rax
	mov	DWORD PTR -348[rbp], -1
	mov	DWORD PTR -360[rbp], 0
	mov	DWORD PTR -344[rbp], 1747979580
	mov	BYTE PTR -395[rbp], 26
	lea	rax, g_255[rip]
	mov	QWORD PTR -256[rbp], rax
	mov	WORD PTR -380[rbp], 13585
	mov	edi, 180
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	test	eax, eax
	je	.L156
	mov	BYTE PTR -386[rbp], 5
	mov	BYTE PTR -400[rbp], 0
	lea	rax, g_70[rip]
	mov	QWORD PTR -272[rbp], rax
	mov	QWORD PTR -144[rbp], 0
	mov	edi, 14
	call	step_hash
	movzx	edx, BYTE PTR -397[rbp]
	movzx	eax, WORD PTR -444[rbp]
	movzx	eax, ax
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	movsx	ecx, WORD PTR -444[rbp]
	cdq
	idiv	ecx
	mov	eax, edx
	movsx	ebx, ax
	movsx	edx, WORD PTR -444[rbp]
	movsx	ax, BYTE PTR -400[rbp]
	shr	ax, 4
	movzx	eax, ax
	cmp	edx, eax
	setge	al
	movzx	eax, al
	mov	esi, eax
	mov	edi, 1
	call	func_37
	movsx	esi, ax
	mov	eax, ebx
	cdq
	idiv	esi
	mov	edx, eax
	mov	eax, DWORD PTR g_2[rip]
	add	eax, edx
	movsx	eax, al
	movsx	ebx, BYTE PTR -386[rbp]
	cdq
	idiv	ebx
	mov	ecx, eax
	mov	rax, QWORD PTR -272[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 22
	call	step_hash
	mov	BYTE PTR -400[rbp], -24
	jmp	.L157
.L160:
	lea	rax, -272[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	edi, 18
	call	step_hash
	mov	rax, QWORD PTR -136[rbp]
	mov	QWORD PTR [rax], 0
	mov	edi, 19
	call	step_hash
	mov	rax, QWORD PTR -432[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L263
	mov	edi, 20
	call	step_hash
	mov	DWORD PTR g_70[rip], -1
	mov	edi, 21
	call	step_hash
	movzx	eax, WORD PTR -444[rbp]
	movzx	edx, ax
	movsx	eax, WORD PTR -444[rbp]
	mov	esi, edx
	mov	edi, eax
	call	func_37
	cwde
	mov	DWORD PTR g_70[rip], eax
	movzx	eax, BYTE PTR -400[rbp]
	sub	eax, 1
	mov	BYTE PTR -400[rbp], al
.L157:
	cmp	BYTE PTR -400[rbp], -28
	jne	.L160
	jmp	.L159
.L263:
	nop
.L159:
	mov	edi, 54
	call	step_hash
	cmp	BYTE PTR -397[rbp], 0
	je	.L161
	mov	QWORD PTR -72[rbp], 0
	lea	rax, g_70[rip]
	mov	QWORD PTR -64[rbp], rax
	mov	edi, 24
	call	step_hash
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], 1051123269
	jmp	.L178
.L161:
	lea	rax, g_2[rip]
	mov	QWORD PTR -264[rbp], rax
	mov	DWORD PTR -288[rbp], -4
	mov	edi, 53
	call	step_hash
	movzx	eax, WORD PTR -444[rbp]
	movzx	ebx, ax
	mov	eax, DWORD PTR g_2[rip]
	movzx	eax, ax
	mov	edx, DWORD PTR g_2[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	cwde
	mov	esi, ebx
	mov	edi, eax
	call	func_37
	test	ax, ax
	je	.L163
	mov	BYTE PTR -382[rbp], 7
	lea	rax, g_70[rip]
	mov	QWORD PTR -88[rbp], rax
	lea	rax, -264[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	edi, 27
	call	step_hash
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, g_70[rip]
	cmp	rax, rdx
	sete	al
	movzx	eax, al
	mov	edx, DWORD PTR g_2[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	movsx	edx, BYTE PTR -382[rbp]
	cmp	WORD PTR -444[rbp], 1
	setg	al
	movzx	eax, al
	xor	eax, edx
	cmp	eax, 20708
	sete	al
	movzx	edx, al
	mov	eax, DWORD PTR g_2[rip]
	and	edx, eax
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	and	edx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -88[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 28
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	mov	edi, eax
	mov	rcx, QWORD PTR -440[rbp]
	mov	rax, QWORD PTR -264[rbp]
	mov	edx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -397[rbp]
	movsx	esi, al
	mov	rax, QWORD PTR -432[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	func_47
	mov	rdx, QWORD PTR -80[rbp]
	mov	QWORD PTR [rdx], rax
	mov	edi, 29
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	jmp	.L260
.L163:
	lea	rax, g_2[rip]
	mov	QWORD PTR -128[rbp], rax
	mov	DWORD PTR -356[rbp], -7
	mov	BYTE PTR -385[rbp], -14
	mov	edi, 31
	call	step_hash
	mov	eax, DWORD PTR g_70[rip]
	movsx	edx, ax
	imul	edx, edx, -28785
	shr	edx, 16
	add	edx, eax
	sar	dx, 14
	sar	ax, 15
	sub	eax, edx
	cwde
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 38
	call	step_hash
	mov	WORD PTR -444[rbp], 13
	jmp	.L165
.L166:
	lea	rax, g_70[rip]
	mov	QWORD PTR -104[rbp], rax
	lea	rax, -272[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	edi, 35
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	mov	DWORD PTR -448[rbp], eax
	movsx	r15d, BYTE PTR -401[rbp]
	mov	r13, QWORD PTR -432[rbp]
	movsx	r12d, WORD PTR -444[rbp]
	movzx	eax, WORD PTR -444[rbp]
	movsx	ebx, al
	mov	eax, DWORD PTR g_70[rip]
	mov	DWORD PTR -452[rbp], eax
	cmp	QWORD PTR -104[rbp], 0
	sete	al
	movzx	r14d, al
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	eax, ax
	mov	edx, DWORD PTR g_70[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	cwde
	mov	esi, DWORD PTR g_70[rip]
	cdq
	idiv	esi
	mov	edx, eax
	movsx	eax, WORD PTR -444[rbp]
	or	eax, edx
	mov	ecx, eax
	mov	eax, r14d
	mov	edx, 0
	div	ecx
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	seta	al
	movzx	edx, al
	mov	eax, DWORD PTR g_70[rip]
	xor	eax, edx
	movsx	si, BYTE PTR -401[rbp]
	mov	edx, 0
	div	si
	movzx	edx, ax
	mov	eax, DWORD PTR g_70[rip]
	movsx	eax, al
	mov	r8d, DWORD PTR -452[rbp]
	lea	rcx, g_2[rip]
	mov	esi, eax
	lea	rdi, g_70[rip]
	call	func_47
	mov	r8d, r15d
	mov	rcx, r13
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	func_47
	mov	rcx, rax
	cmp	QWORD PTR -144[rbp], 0
	setne	al
	movzx	edx, al
	movzx	eax, WORD PTR -444[rbp]
	movsx	esi, al
	mov	rax, QWORD PTR -128[rbp]
	mov	r8d, DWORD PTR -448[rbp]
	mov	rdi, rax
	call	func_47
	mov	rdx, QWORD PTR -96[rbp]
	mov	QWORD PTR [rdx], rax
	mov	edi, 36
	call	step_hash
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	edx, ax
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rcx, g_2[rip]
	cmp	rax, rcx
	setne	al
	movzx	eax, al
	mov	esi, edx
	mov	edi, eax
	call	func_37
	movsx	edx, ax
	movsx	eax, WORD PTR -444[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	cmp	eax, 1
	setne	al
	movzx	edx, al
	mov	eax, DWORD PTR g_70[rip]
	and	edx, eax
	movsx	eax, WORD PTR -444[rbp]
	cmp	edx, eax
	setle	al
	movzx	eax, al
	xor	DWORD PTR -356[rbp], eax
	mov	edi, 37
	call	step_hash
	movsx	eax, WORD PTR -444[rbp]
	mov	edx, -1
	mov	ebx, edx
	mov	ecx, eax
	sal	ebx, cl
	mov	rax, QWORD PTR -272[rbp]
	cmp	QWORD PTR -128[rbp], rax
	setne	r12b
	mov	rax, QWORD PTR -96[rbp]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	movzx	eax, ax
	mov	rdx, QWORD PTR -264[rbp]
	mov	edx, DWORD PTR [rdx]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	movsx	eax, al
	sal	eax, 5
	mov	edx, eax
	movsx	eax, WORD PTR -444[rbp]
	cmp	edx, eax
	setle	al
	xor	eax, r12d
	movzx	eax, al
	cmp	ebx, eax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	or	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, WORD PTR -444[rbp]
	add	eax, 6
	mov	WORD PTR -444[rbp], ax
.L165:
	cmp	WORD PTR -444[rbp], 29
	je	.L166
	mov	edi, 51
	call	step_hash
	mov	WORD PTR -444[rbp], 0
	cmp	WORD PTR -444[rbp], 16
	jg	.L167
	mov	DWORD PTR -284[rbp], -275537166
	mov	edi, 50
	call	step_hash
	movsx	edx, WORD PTR -444[rbp]
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	setg	al
	movzx	eax, al
	cmp	edx, eax
	setle	dl
	cmp	QWORD PTR -128[rbp], 0
	setne	al
	and	eax, edx
	test	al, al
	je	.L168
	mov	BYTE PTR -383[rbp], 72
	lea	rax, -272[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	edi, 43
	call	step_hash
	mov	eax, DWORD PTR g_70[rip]
	mov	r13d, eax
	mov	r12d, DWORD PTR g_70[rip]
	movsx	edx, BYTE PTR -383[rbp]
	mov	rax, QWORD PTR -264[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	setne	al
	movzx	eax, al
	movzx	edx, WORD PTR -444[rbp]
	movzx	ecx, dl
	cdq
	idiv	ecx
	mov	eax, edx
	movsx	ebx, al
	mov	rax, QWORD PTR -432[rbp]
	test	rax, rax
	setne	al
	movzx	edi, al
	movsx	edx, WORD PTR -444[rbp]
	mov	eax, DWORD PTR g_2[rip]
	movsx	esi, al
	mov	rax, QWORD PTR -424[rbp]
	mov	rcx, QWORD PTR -128[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	func_47
	mov	r8d, r13d
	lea	rcx, g_70[rip]
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	func_47
	mov	rdx, QWORD PTR -112[rbp]
	mov	QWORD PTR [rdx], rax
	mov	edi, 44
	call	step_hash
	mov	eax, DWORD PTR g_70[rip]
	movzx	edx, ax
	movsx	eax, WORD PTR -444[rbp]
	mov	esi, edx
	mov	edi, eax
	call	func_37
	movsx	edx, ax
	mov	eax, DWORD PTR g_114[rip]
	xor	eax, edx
	mov	DWORD PTR g_114[rip], eax
	mov	edi, 45
	call	step_hash
	movzx	eax, WORD PTR -444[rbp]
	jmp	.L260
.L168:
	mov	BYTE PTR -384[rbp], 1
	lea	rax, g_70[rip]
	mov	QWORD PTR -120[rbp], rax
	mov	edi, 47
	call	step_hash
	mov	eax, DWORD PTR g_114[rip]
	test	eax, eax
	je	.L169
	movsx	ax, BYTE PTR -384[rbp]
	movzx	ebx, ax
	mov	eax, DWORD PTR g_70[rip]
	movzx	eax, ax
	mov	esi, eax
	mov	edi, 1
	call	func_37
	mov	edx, eax
	mov	eax, DWORD PTR g_2[rip]
	and	eax, edx
	movsx	edx, ax
	mov	eax, 0
	sub	eax, edx
	sal	eax, 3
	mov	esi, ebx
	mov	edi, eax
	call	func_37
	mov	rax, QWORD PTR -424[rbp]
	test	rax, rax
	jne	.L170
	mov	eax, DWORD PTR g_114[rip]
	test	eax, eax
	je	.L170
	mov	edx, 1
	jmp	.L171
.L170:
	mov	edx, 0
.L171:
	mov	eax, DWORD PTR g_114[rip]
	cmp	edx, eax
	jne	.L172
	mov	eax, 1
	jmp	.L173
.L172:
	mov	eax, 0
.L173:
	test	al, al
	je	.L169
	mov	eax, 1
	jmp	.L174
.L169:
	mov	eax, 0
.L174:
	mov	edx, eax
	movzx	eax, WORD PTR g_127[rip]
	xor	eax, edx
	mov	WORD PTR g_127[rip], ax
	mov	edi, 48
	call	step_hash
	cmp	WORD PTR -444[rbp], 0
	je	.L175
	mov	eax, DWORD PTR g_2[rip]
	movsx	ebx, al
	mov	eax, 1
	cdq
	idiv	ebx
	mov	edx, eax
	mov	eax, DWORD PTR g_70[rip]
	cmp	edx, eax
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -272[rbp]
	test	rax, rax
	setne	al
	movzx	eax, al
	cmp	edx, eax
	setge	al
	movzx	eax, al
	mov	esi, eax
	mov	edi, 0
	call	func_37
	mov	eax, DWORD PTR g_114[rip]
	movzx	eax, al
	neg	eax
	movzx	edx, ax
	movsx	eax, WORD PTR -444[rbp]
	mov	esi, edx
	mov	edi, eax
	call	func_37
	mov	edx, eax
	movzx	eax, WORD PTR -444[rbp]
	and	eax, edx
	movsx	eax, al
	movsx	ecx, BYTE PTR -384[rbp]
	cdq
	idiv	ecx
	mov	eax, edx
	sar	ax, 9
	test	ax, ax
	je	.L175
	mov	eax, 1
	jmp	.L176
.L175:
	mov	eax, 0
.L176:
	shr	al, 2
	movzx	edx, al
	mov	eax, edx
	sal	eax, 3
	add	eax, edx
	sal	eax, 3
	sub	eax, edx
	shr	ax, 8
	shr	al, 3
	movzx	edx, al
	mov	eax, DWORD PTR g_70[rip]
	cmp	edx, eax
	setge	al
	movzx	edx, al
	mov	rax, QWORD PTR -120[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 49
	call	step_hash
	movzx	eax, WORD PTR g_127[rip]
	jmp	.L260
.L167:
	mov	edi, 52
	call	step_hash
	mov	rax, QWORD PTR -440[rbp]
	mov	eax, DWORD PTR [rax]
	mov	BYTE PTR -385[rbp], al
	jmp	.L178
.L156:
	mov	DWORD PTR -352[rbp], -1752937893
	mov	QWORD PTR -272[rbp], 0
	lea	rax, -272[rbp]
	mov	QWORD PTR -248[rbp], rax
	mov	BYTE PTR -394[rbp], 50
	mov	BYTE PTR -399[rbp], 54
	mov	DWORD PTR -340[rbp], -1572354227
	mov	DWORD PTR -336[rbp], -873187814
	mov	BYTE PTR -393[rbp], -82
	mov	edi, 146
	call	step_hash
	cmp	DWORD PTR -352[rbp], 0
	je	.L179
	mov	DWORD PTR -364[rbp], 0
	mov	WORD PTR -376[rbp], 23374
	lea	rax, -272[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	edi, 57
	call	step_hash
	cmp	DWORD PTR -352[rbp], 0
	je	.L180
	mov	eax, DWORD PTR g_114[rip]
	test	eax, eax
	je	.L180
	mov	edi, 1
	jmp	.L181
.L180:
	mov	edi, 0
.L181:
	movsx	ecx, WORD PTR -444[rbp]
	mov	rax, QWORD PTR -424[rbp]
	mov	eax, DWORD PTR [rax]
	mov	esi, DWORD PTR g_114[rip]
	cdq
	idiv	esi
	mov	eax, edx
	test	eax, eax
	setne	al
	movzx	eax, al
	cmp	ecx, eax
	sete	al
	movzx	ecx, al
	mov	eax, DWORD PTR -364[rbp]
	neg	eax
	or	eax, 125
	mov	edx, eax
	mov	rax, QWORD PTR -424[rbp]
	mov	eax, DWORD PTR [rax]
	cdqe
	cmp	rdx, rax
	setg	al
	movzx	edx, al
	movzx	eax, BYTE PTR -397[rbp]
	cmp	edx, eax
	jl	.L182
	mov	eax, 5419
	jmp	.L183
.L182:
	mov	eax, 5418
.L183:
	xor	eax, ecx
	cmp	edi, eax
	setg	al
	movzx	eax, al
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 75
	call	step_hash
	mov	DWORD PTR -352[rbp], 16
	jmp	.L184
.L195:
	mov	WORD PTR -374[rbp], 1
	mov	WORD PTR -372[rbp], -10
	mov	DWORD PTR -304[rbp], 1560471471
	lea	rax, g_2[rip]
	mov	QWORD PTR -184[rbp], rax
	mov	edi, 74
	call	step_hash
	cmp	WORD PTR -374[rbp], 0
	je	.L185
	mov	WORD PTR -370[rbp], 1
	mov	DWORD PTR -300[rbp], 4
	mov	edi, 68
	call	step_hash
	mov	WORD PTR -444[rbp], 5
	jmp	.L186
.L191:
	lea	rax, g_70[rip]
	mov	QWORD PTR -176[rbp], rax
	mov	edi, 65
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	movsx	ebx, ax
	movzx	eax, WORD PTR -444[rbp]
	movsx	r12w, al
	movzx	eax, WORD PTR g_127[rip]
	movzx	edx, ax
	mov	eax, DWORD PTR -364[rbp]
	cmp	eax, 203
	setne	al
	movzx	ecx, al
	movzx	eax, WORD PTR -370[rbp]
	cmp	ecx, eax
	setne	al
	movzx	eax, al
	mov	esi, edx
	mov	edi, eax
	call	func_37
	movzx	eax, WORD PTR g_127[rip]
	test	ax, ax
	je	.L187
	mov	edx, 1
	jmp	.L188
.L187:
	mov	edx, 0
.L188:
	movzx	eax, WORD PTR -372[rbp]
	cmp	edx, eax
	setg	al
	movzx	eax, al
	imul	eax, r12d
	cwde
	imul	eax, ebx
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 66
	call	step_hash
	mov	rax, QWORD PTR -432[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 67
	call	step_hash
	movsx	r13d, BYTE PTR -401[rbp]
	movsx	r12d, WORD PTR -444[rbp]
	movzx	eax, WORD PTR -444[rbp]
	movsx	ebx, al
	movsx	ecx, WORD PTR -444[rbp]
	movsx	eax, WORD PTR -444[rbp]
	cmp	WORD PTR -444[rbp], 0
	je	.L189
	cmp	DWORD PTR -300[rbp], 0
	je	.L189
	mov	edx, 1
	jmp	.L190
.L189:
	mov	edx, 0
.L190:
	mov	esi, edx
	mov	edx, 0
	div	esi
	mov	edi, eax
	mov	eax, DWORD PTR g_70[rip]
	movsx	esi, al
	mov	rax, QWORD PTR -248[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -176[rbp]
	mov	r8d, ecx
	mov	rcx, rdx
	mov	edx, edi
	mov	rdi, rax
	call	func_47
	mov	r8d, r13d
	lea	rcx, g_70[rip]
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	func_47
	mov	rdx, QWORD PTR -248[rbp]
	mov	QWORD PTR [rdx], rax
	movzx	eax, WORD PTR -444[rbp]
	sub	eax, 1
	mov	WORD PTR -444[rbp], ax
.L186:
	cmp	WORD PTR -444[rbp], -5
	je	.L191
	mov	edi, 69
	call	step_hash
	mov	eax, DWORD PTR -364[rbp]
	mov	r12d, eax
	mov	rbx, QWORD PTR -440[rbp]
	mov	eax, DWORD PTR g_70[rip]
	movzx	edx, ax
	mov	eax, DWORD PTR -304[rbp]
	mov	esi, edx
	mov	edi, eax
	call	func_37
	movzx	eax, ax
	sal	eax, 3
	mov	edx, eax
	mov	eax, DWORD PTR g_114[rip]
	xor	eax, edx
	movsx	esi, al
	lea	rax, -364[rbp]
	mov	r8d, r12d
	mov	rcx, rbx
	mov	edx, 1
	mov	rdi, rax
	call	func_47
	mov	rdx, QWORD PTR -248[rbp]
	mov	QWORD PTR [rdx], rax
	jmp	.L192
.L185:
	mov	QWORD PTR -264[rbp], 0
	mov	edi, 71
	call	step_hash
	movzx	eax, WORD PTR g_127[rip]
	movzx	eax, ax
	mov	edx, DWORD PTR g_70[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	cwde
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 72
	call	step_hash
	cmp	QWORD PTR -184[rbp], 0
	sete	al
	movzx	ebx, al
	mov	rax, QWORD PTR -264[rbp]
	lea	rdx, g_70[rip]
	cmp	rax, rdx
	jne	.L193
	mov	rax, QWORD PTR -184[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	eax, ax
	mov	esi, eax
	mov	edi, 1
	call	func_37
	cmp	WORD PTR -376[rbp], 1
	ja	.L193
	mov	eax, 1
	jmp	.L194
.L193:
	mov	eax, 0
.L194:
	movzx	eax, ax
	mov	ecx, eax
	sar	ebx, cl
	mov	eax, ebx
	movzx	eax, al
	neg	eax
	mov	DWORD PTR -364[rbp], eax
	mov	edi, 73
	call	step_hash
	mov	rdx, QWORD PTR g_189[rip]
	lea	rax, -264[rbp]
	cmp	rdx, rax
	setne	dl
	mov	rax, QWORD PTR g_190[rip]
	movzx	edx, dl
	mov	DWORD PTR [rax], edx
.L192:
	sub	DWORD PTR -352[rbp], 1
.L184:
	cmp	DWORD PTR -352[rbp], 3
	ja	.L195
	mov	edi, 76
	call	step_hash
	cmp	QWORD PTR -192[rbp], 0
	sete	al
	xor	BYTE PTR -394[rbp], al
	jmp	.L196
.L179:
	mov	BYTE PTR -398[rbp], -2
	mov	QWORD PTR -264[rbp], 0
	mov	BYTE PTR -392[rbp], -70
	mov	edi, 78
	call	step_hash
	mov	eax, DWORD PTR g_114[rip]
	test	eax, eax
	jne	.L197
	mov	eax, DWORD PTR g_114[rip]
	and	eax, -9
	test	eax, eax
	je	.L198
.L197:
	mov	edx, 1
	jmp	.L199
.L198:
	mov	edx, 0
.L199:
	mov	rax, QWORD PTR g_190[rip]
	mov	DWORD PTR [rax], edx
	mov	edi, 96
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L200
	lea	rax, g_190[rip]
	mov	QWORD PTR -240[rbp], rax
	mov	edi, 80
	call	step_hash
	lea	rax, g_190[rip]
	cmp	QWORD PTR -240[rbp], rax
	jne	.L201
	mov	eax, 55
	jmp	.L202
.L201:
	mov	eax, 54
.L202:
	and	BYTE PTR -398[rbp], al
	jmp	.L203
.L200:
	mov	BYTE PTR -391[rbp], -86
	mov	edi, 82
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rdx]
	mov	DWORD PTR [rax], edx
	mov	edi, 83
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	lea	rdx, -368[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 95
	call	step_hash
	mov	WORD PTR -444[rbp], 0
	jmp	.L204
.L215:
	mov	DWORD PTR -332[rbp], -1
	mov	edi, 87
	call	step_hash
	movzx	edx, BYTE PTR -391[rbp]
	mov	eax, DWORD PTR g_114[rip]
	cmp	edx, eax
	jl	.L205
	mov	eax, 23789
	jmp	.L206
.L205:
	mov	eax, 0
.L206:
	mov	esi, 0
	mov	edi, eax
	call	func_37
	cmp	ax, 28935
	ja	.L207
	mov	eax, DWORD PTR g_2[rip]
	test	eax, eax
	je	.L208
.L207:
	mov	eax, 1
	jmp	.L209
.L208:
	mov	eax, 0
.L209:
	movzx	ebx, ax
	mov	eax, DWORD PTR g_114[rip]
	movzx	eax, ax
	mov	edx, DWORD PTR g_70[rip]
	mov	esi, eax
	mov	edi, edx
	call	func_37
	test	ax, ax
	je	.L210
	mov	eax, DWORD PTR g_70[rip]
	test	eax, eax
	je	.L210
	mov	eax, 1
	jmp	.L211
.L210:
	mov	eax, 0
.L211:
	movzx	eax, ax
	mov	ecx, eax
	sar	ebx, cl
	mov	ecx, ebx
	mov	rax, QWORD PTR g_190[rip]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR g_190[rip]
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 88
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	esi, DWORD PTR [rax]
	movzx	eax, BYTE PTR -398[rbp]
	imul	eax, eax, 253
	mov	rdx, QWORD PTR -424[rbp]
	mov	ecx, DWORD PTR [rdx]
	cdq
	idiv	ecx
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	and	edx, esi
	mov	DWORD PTR [rax], edx
	mov	edi, 89
	call	step_hash
	mov	rax, QWORD PTR -424[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L264
	mov	edi, 94
	call	step_hash
	mov	DWORD PTR -352[rbp], 1
	cmp	DWORD PTR -352[rbp], 48
	je	.L213
	mov	edi, 93
	call	step_hash
	mov	eax, DWORD PTR -332[rbp]
	jmp	.L260
.L264:
	nop
.L213:
	movzx	eax, WORD PTR -444[rbp]
	add	eax, 1
	mov	WORD PTR -444[rbp], ax
.L204:
	cmp	WORD PTR -444[rbp], 17
	jg	.L215
.L203:
	mov	edi, 145
	call	step_hash
	mov	eax, DWORD PTR g_70[rip]
	test	eax, eax
	je	.L216
	movzx	ebx, BYTE PTR -398[rbp]
	movzx	eax, WORD PTR g_127[rip]
	movzx	eax, ax
	mov	esi, eax
	mov	edi, 0
	call	func_37
	cwde
	mov	esi, ebx
	mov	edi, eax
	call	func_37
	test	ax, ax
	je	.L216
	mov	eax, 1
	jmp	.L217
.L216:
	mov	eax, 0
.L217:
	movzx	edx, ax
	movzx	eax, WORD PTR g_222[rip]
	movzx	eax, ax
	mov	ecx, eax
	sal	edx, cl
	mov	rax, QWORD PTR g_190[rip]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jg	.L218
	mov	DWORD PTR -320[rbp], -5
	mov	edi, 98
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR -248[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	edi, 99
	call	step_hash
	movzx	eax, WORD PTR g_222[rip]
	movzx	ebx, ax
	movzx	edx, BYTE PTR -398[rbp]
	mov	rax, QWORD PTR -264[rbp]
	test	rax, rax
	setne	al
	movzx	eax, al
	xor	eax, edx
	movzx	r12d, ax
	mov	eax, DWORD PTR g_114[rip]
	mov	esi, 0
	mov	edi, eax
	call	func_37
	xor	al, -27
	cwde
	mov	esi, r12d
	mov	edi, eax
	call	func_37
	movsx	edx, ax
	mov	eax, DWORD PTR g_70[rip]
	and	eax, edx
	test	eax, eax
	setne	al
	movzx	eax, al
	shr	ax, 4
	movzx	eax, ax
	mov	esi, ebx
	mov	edi, eax
	call	func_37
	mov	eax, 0
	mov	edx, eax
	movzx	eax, BYTE PTR -392[rbp]
	or	eax, edx
	mov	BYTE PTR -392[rbp], al
	mov	edi, 117
	call	step_hash
	cmp	DWORD PTR -320[rbp], 0
	je	.L219
	mov	DWORD PTR -316[rbp], -1629850510
	mov	edi, 101
	call	step_hash
	mov	rax, QWORD PTR -432[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -316[rbp], eax
	mov	edi, 108
	call	step_hash
	mov	WORD PTR g_222[rip], -22
	jmp	.L220
.L225:
	mov	QWORD PTR -208[rbp], 0
	lea	rax, -368[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	edi, 105
	call	step_hash
	mov	eax, DWORD PTR g_70[rip]
	test	eax, eax
	jne	.L265
	mov	edi, 106
	call	step_hash
	cmp	DWORD PTR -320[rbp], 0
	jne	.L266
	mov	edi, 107
	call	step_hash
	movzx	edx, BYTE PTR -397[rbp]
	mov	rax, QWORD PTR -200[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L224
.L266:
	nop
.L224:
	movzx	eax, WORD PTR g_222[rip]
	add	eax, 4
	mov	WORD PTR g_222[rip], ax
.L220:
	movzx	eax, WORD PTR g_222[rip]
	cmp	ax, -10
	jge	.L225
	jmp	.L226
.L219:
	mov	edi, 110
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR -440[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 116
	call	step_hash
	movzx	eax, WORD PTR -444[rbp]
	movzx	edx, ax
	movsx	cx, BYTE PTR -396[rbp]
	movzx	eax, WORD PTR g_222[rip]
	cmp	cx, ax
	sete	al
	movzx	eax, al
	mov	esi, edx
	mov	edi, eax
	call	func_37
	test	ax, ax
	je	.L227
	mov	edi, 112
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	setne	al
	movzx	edx, al
	mov	eax, DWORD PTR g_70[rip]
	and	eax, edx
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 113
	call	step_hash
	cmp	WORD PTR -444[rbp], 0
	setne	al
	movzx	eax, al
	mov	WORD PTR g_236[rip], ax
	jmp	.L226
.L227:
	lea	rax, -264[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	edi, 115
	call	step_hash
	mov	rdx, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR -216[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L226
.L265:
	nop
.L226:
	mov	edi, 128
	call	step_hash
	cmp	BYTE PTR -401[rbp], 0
	je	.L228
	mov	BYTE PTR -389[rbp], -73
	mov	DWORD PTR -312[rbp], -542542820
	mov	DWORD PTR -308[rbp], -10
	mov	edi, 123
	call	step_hash
	mov	WORD PTR g_127[rip], -20
	nop
	movzx	eax, WORD PTR g_127[rip]
	cmp	ax, -6
	jl	.L262
	mov	edi, 122
	call	step_hash
	movzx	eax, BYTE PTR -389[rbp]
	jmp	.L260
.L262:
	mov	edi, 124
	call	step_hash
	mov	r14d, DWORD PTR -308[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	r12, QWORD PTR [rax]
	mov	eax, DWORD PTR g_114[rip]
	movsx	ebx, al
	movzx	eax, WORD PTR g_127[rip]
	movsx	r8d, ax
	mov	rdi, QWORD PTR -440[rbp]
	movzx	eax, WORD PTR -444[rbp]
	mov	esi, 0
	mov	edx, 0
	div	si
	movzx	edx, ax
	movsx	eax, WORD PTR -444[rbp]
	cmp	edx, eax
	setne	al
	movzx	eax, al
	cmp	DWORD PTR -312[rbp], eax
	setg	al
	movzx	eax, al
	not	eax
	movsx	edx, ax
	movsx	eax, WORD PTR -444[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, DWORD PTR g_114[rip]
	movsx	esi, al
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	rcx, rdi
	mov	rdi, rax
	call	func_47
	mov	rdi, rax
	mov	r13, QWORD PTR g_189[rip]
	mov	eax, DWORD PTR -312[rbp]
	mov	r8d, r14d
	mov	rcx, r12
	mov	edx, eax
	mov	esi, ebx
	call	func_47
	mov	QWORD PTR 0[r13], rax
	mov	edi, 125
	call	step_hash
	mov	eax, DWORD PTR -308[rbp]
	and	eax, DWORD PTR -320[rbp]
	mov	DWORD PTR -308[rbp], eax
	jmp	.L196
.L228:
	mov	WORD PTR -378[rbp], 10024
	mov	edi, 127
	call	step_hash
	movzx	eax, WORD PTR -378[rbp]
	jmp	.L260
.L218:
	mov	DWORD PTR -328[rbp], 2133521783
	mov	DWORD PTR -324[rbp], 1
	mov	edi, 142
	call	step_hash
	mov	rax, QWORD PTR g_190[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L232
	lea	rax, g_255[rip]
	mov	QWORD PTR -232[rbp], rax
	mov	edi, 131
	call	step_hash
	mov	edx, DWORD PTR g_2[rip]
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	and	edx, -2
	mov	DWORD PTR [rax], edx
	mov	edi, 132
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR -328[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 133
	call	step_hash
	mov	rax, QWORD PTR -232[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	and	edx, eax
	mov	rax, QWORD PTR -232[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 139
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L233
	mov	edi, 135
	call	step_hash
	movsx	edi, WORD PTR -444[rbp]
	mov	rax, QWORD PTR g_189[rip]
	mov	rcx, QWORD PTR [rax]
	mov	edx, DWORD PTR g_255[rip]
	movzx	eax, WORD PTR -444[rbp]
	movsx	esi, al
	mov	rax, QWORD PTR -440[rbp]
	mov	rbx, QWORD PTR -280[rbp]
	mov	r8d, edi
	mov	rdi, rax
	call	func_47
	mov	QWORD PTR [rbx], rax
	jmp	.L234
.L233:
	lea	rax, -280[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	edi, 137
	call	step_hash
	mov	rax, QWORD PTR -224[rbp]
	lea	rdx, -424[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 138
	call	step_hash
	mov	rax, QWORD PTR -280[rbp]
	mov	QWORD PTR [rax], 0
	jmp	.L234
.L232:
	mov	BYTE PTR -390[rbp], 30
	mov	edi, 141
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	movzx	edx, ax
	movsx	ax, BYTE PTR -390[rbp]
	movzx	eax, ax
	mov	ebx, edx
	mov	ecx, eax
	sar	ebx, cl
	movzx	eax, WORD PTR g_222[rip]
	movzx	edx, ax
	movsx	eax, WORD PTR -444[rbp]
	mov	esi, edx
	mov	edi, eax
	call	func_37
	test	ax, ax
	je	.L235
	mov	eax, 1
	jmp	.L236
.L235:
	mov	eax, 0
.L236:
	cwde
	movzx	edx, WORD PTR g_222[rip]
	movsx	edx, dx
	sub	eax, edx
	cmp	ebx, eax
	sete	al
	movzx	ecx, al
	mov	rax, QWORD PTR g_190[rip]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR g_190[rip]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
.L234:
	mov	edi, 143
	call	step_hash
	movsx	edx, WORD PTR -444[rbp]
	mov	eax, DWORD PTR g_114[rip]
	and	eax, edx
	and	DWORD PTR -324[rbp], eax
	mov	edi, 144
	call	step_hash
	movzx	eax, WORD PTR -444[rbp]
	movzx	edx, ax
	movzx	eax, WORD PTR g_222[rip]
	cwde
	mov	esi, edx
	mov	edi, eax
	call	func_37
	cwde
	mov	ebx, 0
	cdq
	idiv	ebx
	movzx	edx, ax
	movzx	eax, WORD PTR g_222[rip]
	movzx	eax, ax
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	DWORD PTR -324[rbp], eax
.L196:
	mov	edi, 147
	call	step_hash
	movsx	r10d, WORD PTR -444[rbp]
	mov	rax, QWORD PTR g_189[rip]
	mov	rdi, QWORD PTR [rax]
	movsx	esi, BYTE PTR -399[rbp]
	movsx	r8d, WORD PTR -444[rbp]
	mov	eax, DWORD PTR -348[rbp]
	movsx	r9d, ax
	movsx	ecx, WORD PTR -444[rbp]
	movsx	eax, WORD PTR -444[rbp]
	movzx	edx, WORD PTR -444[rbp]
	xor	edx, 1
	cmp	dl, -4
	setnb	dl
	movzx	ebx, dl
	cdq
	idiv	ebx
	mov	edx, eax
	movzx	eax, WORD PTR -444[rbp]
	add	eax, edx
	add	eax, 97
	movzx	edx, al
	movzx	eax, WORD PTR -444[rbp]
	movzx	eax, al
	imul	eax, edx
	cmp	ecx, eax
	setl	al
	movzx	edx, al
	mov	eax, DWORD PTR g_114[rip]
	movsx	eax, al
	add	edx, eax
	movsx	eax, WORD PTR -444[rbp]
	cmp	edx, eax
	setle	al
	movzx	edx, al
	mov	eax, DWORD PTR g_70[rip]
	xor	eax, edx
	cwde
	mov	ecx, eax
	sal	r9d, cl
	mov	eax, r9d
	cmp	r8d, eax
	jl	.L238
	mov	r9d, -3
	jmp	.L239
.L238:
	mov	r9d, -4
.L239:
	mov	rax, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR [rax]
	mov	r8d, r10d
	mov	rcx, rdi
	mov	edx, esi
	mov	esi, r9d
	mov	rdi, rax
	call	func_47
	mov	rdx, QWORD PTR -248[rbp]
	mov	QWORD PTR [rdx], rax
	mov	edi, 148
	call	step_hash
	mov	rax, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR -424[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 179
	call	step_hash
	mov	rax, QWORD PTR -440[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L240
	mov	QWORD PTR -160[rbp], 0
	lea	rax, g_70[rip]
	mov	QWORD PTR -152[rbp], rax
	mov	edi, 150
	call	step_hash
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, DWORD PTR -360[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L178
.L240:
	mov	BYTE PTR -388[rbp], -1
	lea	rax, g_255[rip]
	mov	QWORD PTR -168[rbp], rax
	mov	DWORD PTR -296[rbp], -490834446
	mov	edi, 152
	call	step_hash
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 176
	call	step_hash
	mov	BYTE PTR -399[rbp], 0
	jmp	.L242
.L257:
	mov	BYTE PTR -387[rbp], -5
	mov	edi, 156
	call	step_hash
	movsx	r15d, WORD PTR -444[rbp]
	mov	rax, QWORD PTR g_189[rip]
	mov	r13, QWORD PTR [rax]
	mov	r12d, DWORD PTR g_114[rip]
	mov	eax, DWORD PTR g_70[rip]
	movsx	ebx, al
	movsx	esi, BYTE PTR -387[rbp]
	mov	rcx, QWORD PTR -432[rbp]
	mov	edx, DWORD PTR g_70[rip]
	movzx	eax, BYTE PTR -388[rbp]
	cmp	al, BYTE PTR -387[rbp]
	jge	.L243
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	je	.L244
.L243:
	mov	edi, 1
	jmp	.L245
.L244:
	mov	edi, 0
.L245:
	mov	eax, DWORD PTR g_114[rip]
	cmp	edi, eax
	jge	.L246
	mov	edi, -47
	jmp	.L247
.L246:
	mov	edi, -48
.L247:
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	r8d, esi
	mov	esi, edi
	mov	rdi, rax
	call	func_47
	mov	r14, QWORD PTR g_189[rip]
	mov	r8d, r15d
	mov	rcx, r13
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	func_47
	mov	QWORD PTR [r14], rax
	mov	edi, 173
	call	step_hash
	mov	DWORD PTR -360[rbp], 0
	jmp	.L248
.L252:
	mov	DWORD PTR -292[rbp], -1346162319
	mov	edi, 166
	call	step_hash
	mov	rax, QWORD PTR g_190[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L249
	mov	edi, 161
	call	step_hash
	movsx	r12d, WORD PTR -444[rbp]
	mov	rbx, QWORD PTR -432[rbp]
	movzx	eax, WORD PTR -444[rbp]
	movzx	edx, ax
	mov	eax, DWORD PTR -292[rbp]
	mov	ecx, eax
	movzx	eax, WORD PTR g_127[rip]
	mov	esi, eax
	mov	eax, ecx
	sub	eax, esi
	movsx	ecx, al
	mov	rax, QWORD PTR -432[rbp]
	test	rax, rax
	sete	al
	movzx	esi, al
	movsx	eax, WORD PTR -444[rbp]
	cmp	esi, eax
	setge	al
	movzx	eax, al
	cmp	ecx, eax
	setne	al
	movzx	eax, al
	mov	esi, edx
	mov	edi, eax
	call	func_37
	or	eax, -5
	movsx	eax, al
	mov	edx, -123
	mov	ecx, eax
	sal	edx, cl
	movsx	eax, BYTE PTR -387[rbp]
	cmp	edx, eax
	setle	al
	movzx	eax, al
	mov	edx, DWORD PTR g_2[rip]
	movsx	ecx, dl
	cdq
	idiv	ecx
	mov	eax, edx
	movzx	edx, al
	mov	eax, DWORD PTR g_2[rip]
	movzx	eax, al
	add	edx, eax
	movzx	eax, WORD PTR -444[rbp]
	movsx	esi, al
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	r8d, r12d
	mov	rcx, rbx
	mov	rdi, rax
	call	func_47
	mov	QWORD PTR -168[rbp], rax
	mov	edi, 162
	call	step_hash
	movzx	eax, WORD PTR g_222[rip]
	jmp	.L260
.L249:
	mov	edi, 164
	call	step_hash
	mov	DWORD PTR -336[rbp], 0
	mov	edi, 165
	call	step_hash
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR [rax], -65526
	mov	edi, 167
	call	step_hash
	mov	eax, DWORD PTR g_324[rip]
	movsx	edx, ax
	movsx	ecx, WORD PTR -444[rbp]
	cmp	BYTE PTR -393[rbp], 7
	sete	al
	movzx	eax, al
	cmp	ecx, eax
	sete	al
	movzx	eax, al
	imul	edx, eax
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 172
	call	step_hash
	mov	BYTE PTR -401[rbp], -23
	jmp	.L250
.L251:
	mov	edi, 171
	call	step_hash
	mov	eax, DWORD PTR g_324[rip]
	movsx	edx, al
	movzx	eax, WORD PTR g_127[rip]
	movsx	eax, al
	add	eax, edx
	mov	DWORD PTR -296[rbp], eax
	movzx	eax, BYTE PTR -401[rbp]
	add	eax, 1
	mov	BYTE PTR -401[rbp], al
.L250:
	cmp	BYTE PTR -401[rbp], -10
	jne	.L251
	add	DWORD PTR -360[rbp], 3
.L248:
	cmp	DWORD PTR -360[rbp], 23
	jle	.L252
	mov	edi, 174
	call	step_hash
	movsx	ax, BYTE PTR -387[rbp]
	mov	edx, DWORD PTR g_114[rip]
	imul	eax, edx
	mov	esi, eax
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -424[rbp]
	cmp	rdx, rax
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	shr	eax, 31
	movzx	ecx, al
	movsx	eax, WORD PTR -444[rbp]
	cmp	ecx, eax
	jge	.L253
	mov	eax, 76
	jmp	.L254
.L253:
	mov	eax, 75
.L254:
	sub	edx, eax
	mov	rax, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR [rax]
	mov	eax, edx
	sub	eax, ecx
	cmp	eax, -1940352446
	setnb	al
	movzx	eax, al
	add	eax, esi
	cmp	ax, -18001
	jge	.L255
	mov	edx, 64
	jmp	.L256
.L255:
	mov	edx, 0
.L256:
	movzx	eax, WORD PTR g_127[rip]
	cwde
	or	eax, edx
	cmp	eax, 192
	setg	al
	movzx	edx, al
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 175
	call	step_hash
	mov	edx, DWORD PTR -344[rbp]
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, BYTE PTR -399[rbp]
	add	eax, 1
	mov	BYTE PTR -399[rbp], al
.L242:
	cmp	BYTE PTR -399[rbp], 4
	je	.L257
	mov	edi, 177
	call	step_hash
	mov	eax, DWORD PTR g_114[rip]
	movzx	edx, al
	mov	rax, QWORD PTR -168[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	eax, al
	add	eax, edx
	mov	DWORD PTR g_70[rip], eax
	mov	edi, 178
	call	step_hash
	mov	rax, QWORD PTR -440[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -168[rbp]
	mov	DWORD PTR [rax], edx
.L178:
	mov	edi, 181
	call	step_hash
	movzx	edx, BYTE PTR -395[rbp]
	mov	rax, QWORD PTR -256[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 182
	call	step_hash
	mov	rdx, QWORD PTR g_189[rip]
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	edi, 190
	call	step_hash
	movzx	eax, WORD PTR g_236[rip]
	movsx	eax, al
	mov	edx, DWORD PTR g_255[rip]
	movsx	edx, dl
	sub	eax, edx
	mov	ecx, eax
	mov	rax, QWORD PTR g_189[rip]
	mov	rdx, QWORD PTR [rax]
	mov	rax, QWORD PTR -432[rbp]
	cmp	rdx, rax
	setne	al
	movzx	eax, al
	cmp	ecx, eax
	je	.L258
	mov	BYTE PTR -381[rbp], -48
	mov	edi, 184
	call	step_hash
	movzx	eax, BYTE PTR -381[rbp]
	mov	esi, eax
	mov	edi, 2
	call	func_37
	mov	rdx, QWORD PTR -256[rbp]
	mov	edx, DWORD PTR [rdx]
	cwde
	and	edx, eax
	mov	rax, QWORD PTR -256[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 185
	call	step_hash
	movzx	eax, WORD PTR -444[rbp]
	shr	al, 5
	movzx	eax, al
	xor	WORD PTR -380[rbp], ax
	jmp	.L259
.L258:
	mov	edi, 187
	call	step_hash
	mov	rdx, QWORD PTR -280[rbp]
	mov	rax, QWORD PTR -280[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	edi, 188
	call	step_hash
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR [rax]
	not	eax
	mov	edx, eax
	mov	rax, QWORD PTR -256[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 189
	call	step_hash
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, -258266051
	mov	edx, eax
	mov	rax, QWORD PTR -256[rbp]
	mov	DWORD PTR [rax], edx
.L259:
	mov	edi, 191
	call	step_hash
	mov	rax, QWORD PTR -256[rbp]
	mov	eax, DWORD PTR [rax]
.L260:
	mov	rbx, QWORD PTR -56[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L261
	call	__stack_chk_fail@PLT
.L261:
	add	rsp, 424
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	func_42, .-func_42
	.type	func_47, @function
func_47:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -24[rbp], rdi
	mov	eax, esi
	mov	DWORD PTR -32[rbp], edx
	mov	QWORD PTR -40[rbp], rcx
	mov	DWORD PTR -44[rbp], r8d
	mov	BYTE PTR -28[rbp], al
	mov	DWORD PTR -4[rbp], 1
	mov	edi, 9
	call	step_hash
	lea	rax, g_2[rip]
	mov	QWORD PTR -40[rbp], rax
	mov	edi, 10
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	movzx	edx, ax
	movsx	eax, BYTE PTR -28[rbp]
	mov	esi, edx
	mov	edi, eax
	call	func_37
	cwde
	and	DWORD PTR -4[rbp], eax
	mov	edi, 11
	call	step_hash
	mov	rax, QWORD PTR -40[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	func_47, .-func_47
	.section	.rodata
.LC2:
	.string	"g_2"
.LC3:
	.string	"g_70"
.LC4:
	.string	"g_114"
.LC5:
	.string	"g_127"
.LC6:
	.string	"g_222"
.LC7:
	.string	"g_236"
.LC8:
	.string	"g_255"
.LC9:
	.string	"g_324"
.LC10:
	.string	"g_423"
.LC11:
	.string	"g_523"
.LC12:
	.string	"g_611"
	.text
	.globl	csmith_compute_hash
	.type	csmith_compute_hash, @function
csmith_compute_hash:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_2[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC2[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_70[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC3[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_114[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC4[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_127[rip]
	cwde
	lea	rsi, .LC5[rip]
	mov	edi, eax
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_222[rip]
	cwde
	lea	rsi, .LC6[rip]
	mov	edi, eax
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_236[rip]
	cwde
	lea	rsi, .LC7[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_255[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC8[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_324[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC9[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_423[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC10[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_523[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC11[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_611[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC12[rip]
	mov	edi, ecx
	call	transparent_crc
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	csmith_compute_hash, .-csmith_compute_hash
	.section	.rodata
	.align 8
.LC13:
	.string	"before stmt(%d): checksum = %X\n"
	.text
	.globl	step_hash
	.type	step_hash, @function
step_hash:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -4[rbp], 0
	call	csmith_compute_hash
	mov	eax, DWORD PTR crc32_context[rip]
	not	eax
	mov	edx, eax
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, eax
	lea	rdi, .LC13[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR crc32_context[rip], -1
	mov	DWORD PTR -4[rbp], 0
	jmp	.L271
.L272:
	mov	eax, DWORD PTR -4[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, crc32_tab[rip]
	mov	DWORD PTR [rdx+rax], 0
	add	DWORD PTR -4[rbp], 1
.L271:
	cmp	DWORD PTR -4[rbp], 255
	jle	.L272
	call	crc32_gentab
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	step_hash, .-step_hash
	.globl	main
	.type	main, @function
main:
.LFB18:
	.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], 0
	call	platform_main_begin
	call	crc32_gentab
	call	func_1
	call	csmith_compute_hash
	mov	eax, DWORD PTR crc32_context[rip]
	not	eax
	mov	edx, eax
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, eax
	mov	edi, edx
	call	platform_main_end
	mov	eax, 0
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.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	"403304.c"
	.text
	.global	print_hash_value
	.data
	.align	2
	.type	print_hash_value, %object
	.size	print_hash_value, 4
print_hash_value:
	.word	1
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	platform_main_begin, %function
platform_main_begin:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	platform_main_begin, .-platform_main_begin
	.local	crc32_tab
	.comm	crc32_tab,1024,4
	.data
	.align	2
	.type	crc32_context, %object
	.size	crc32_context, 4
crc32_context:
	.word	-1
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc32_gentab, %function
crc32_gentab:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	ldr	r3, .L9
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-16]
	b	.L3
.L8:
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-20]
	mov	r3, #8
	str	r3, [fp, #-12]
	b	.L4
.L7:
	ldr	r3, [fp, #-20]
	and	r3, r3, #1
	cmp	r3, #0
	beq	.L5
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #1
	ldr	r2, [fp, #-8]
	eor	r3, r3, r2
	str	r3, [fp, #-20]
	b	.L6
.L5:
	ldr	r3, [fp, #-20]
	lsr	r3, r3, #1
	str	r3, [fp, #-20]
.L6:
	ldr	r3, [fp, #-12]
	sub	r3, r3, #1
	str	r3, [fp, #-12]
.L4:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bgt	.L7
	ldr	r1, .L9+4
	ldr	r3, [fp, #-16]
	ldr	r2, [fp, #-20]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L3:
	ldr	r3, [fp, #-16]
	cmp	r3, #255
	ble	.L8
	nop
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L10:
	.align	2
.L9:
	.word	-306674912
	.word	crc32_tab
	.size	crc32_gentab, .-crc32_gentab
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc32_byte, %function
crc32_byte:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldr	r3, .L12
	ldr	r3, [r3]
	lsr	r2, r3, #8
	ldrb	r1, [fp, #-5]	@ zero_extendqisi2
	ldr	r3, .L12
	ldr	r3, [r3]
	eor	r3, r3, r1
	and	r3, r3, #255
	ldr	r1, .L12+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r3, r3, r2
	ldr	r2, .L12
	str	r3, [r2]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
.L13:
	.align	2
.L12:
	.word	crc32_context
	.word	crc32_tab
	.size	crc32_byte, .-crc32_byte
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	crc32_8bytes, %function
crc32_8bytes:
	@ 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]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	crc32_byte
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #8
	and	r3, r3, #255
	mov	r0, r3
	bl	crc32_byte
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #16
	and	r3, r3, #255
	mov	r0, r3
	bl	crc32_byte
	ldr	r3, [fp, #-8]
	lsr	r3, r3, #24
	and	r3, r3, #255
	mov	r0, r3
	bl	crc32_byte
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	crc32_8bytes, .-crc32_8bytes
	.section	.rodata
	.align	2
.LC0:
	.ascii	"...checksum after hashing %s : %X\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	transparent_crc, %function
transparent_crc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	ldr	r0, [fp, #-8]
	bl	crc32_8bytes
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	beq	.L17
	ldr	r3, .L18
	ldr	r3, [r3]
	mvn	r3, r3
	mov	r2, r3
	ldr	r1, [fp, #-12]
	ldr	r0, .L18+4
	bl	printf
.L17:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L19:
	.align	2
.L18:
	.word	crc32_context
	.word	.LC0
	.size	transparent_crc, .-transparent_crc
	.section	.rodata
	.align	2
.LC1:
	.ascii	"checksum = %x\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	platform_main_end, %function
platform_main_end:
	@ 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, #-12]
	cmp	r3, #0
	bne	.L22
	ldr	r1, [fp, #-8]
	ldr	r0, .L23
	bl	printf
.L22:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L24:
	.align	2
.L23:
	.word	.LC1
	.size	platform_main_end, .-platform_main_end
	.local	__undefined
	.comm	__undefined,4,4
	.data
	.align	2
	.type	g_2, %object
	.size	g_2, 4
g_2:
	.word	829504401
	.local	g_70
	.comm	g_70,4,4
	.align	2
	.type	g_114, %object
	.size	g_114, 4
g_114:
	.word	-3
	.align	1
	.type	g_127, %object
	.size	g_127, 2
g_127:
	.short	-28927
	.align	2
	.type	g_190, %object
	.size	g_190, 4
g_190:
	.word	g_70
	.align	2
	.type	g_189, %object
	.size	g_189, 4
g_189:
	.word	g_190
	.align	1
	.type	g_222, %object
	.size	g_222, 2
g_222:
	.short	1
	.align	1
	.type	g_236, %object
	.size	g_236, 2
g_236:
	.short	23914
	.align	2
	.type	g_255, %object
	.size	g_255, 4
g_255:
	.word	1167611100
	.align	2
	.type	g_324, %object
	.size	g_324, 4
g_324:
	.word	1
	.align	2
	.type	g_423, %object
	.size	g_423, 4
g_423:
	.word	450943577
	.align	2
	.type	g_523, %object
	.size	g_523, 4
g_523:
	.word	-398385569
	.align	2
	.type	g_611, %object
	.size	g_611, 4
g_611:
	.word	-1452407309
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_1, %function
func_1:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mvn	r3, #2
	strh	r3, [fp, #-22]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-20]
	ldr	r0, .L29
	bl	step_hash
	ldr	r3, .L29+4
	mov	r2, #24
	str	r2, [r3]
	b	.L26
.L27:
	mov	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, .L29+8
	str	r3, [fp, #-12]
	ldr	r3, .L29+12
	str	r3, [fp, #-8]
	ldr	r3, .L29+4
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L29+4
	str	r3, [r2]
.L26:
	ldr	r3, .L29+4
	ldr	r3, [r3]
	cmp	r3, #2
	bne	.L27
	ldr	r0, .L29+16
	bl	step_hash
	ldr	r3, .L29+20
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L30:
	.align	2
.L29:
	.word	446
	.word	g_2
	.word	1885888596
	.word	g_70
	.word	447
	.word	g_189
	.size	func_1, .-func_1
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_8, %function
func_8:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	ldr	r3, .L33
	str	r3, [fp, #-8]
	mov	r0, #440
	bl	step_hash
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	and	r2, r3, #1
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r0, .L33+4
	bl	step_hash
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-8]
	str	r2, [r3]
	ldr	r0, .L33+8
	bl	step_hash
	ldr	r3, .L33+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L33+16
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r1, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	add	r2, r2, r3
	ldr	r3, .L33+20
	ldr	r3, [r3]
	orr	r3, r2, r3
	ldr	r2, .L33+20
	str	r3, [r2]
	ldr	r0, .L33+24
	bl	step_hash
	ldr	r3, .L33+28
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	mov	r0, #444
	bl	step_hash
	ldr	r3, [fp, #-8]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L34:
	.align	2
.L33:
	.word	g_70
	.word	441
	.word	442
	.word	g_423
	.word	g_127
	.word	g_255
	.word	443
	.word	g_189
	.size	func_8, .-func_8
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_15, %function
func_15:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, fp, lr}
	add	fp, sp, #12
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, r2
	strh	r3, [fp, #-38]	@ movhi
	ldr	r3, .L38
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L38+4
	str	r3, [fp, #-28]
	sub	r3, fp, #28
	str	r3, [fp, #-24]
	sub	r3, fp, #24
	str	r3, [fp, #-20]
	ldr	r0, .L38+8
	bl	step_hash
	ldr	r3, [fp, #-28]
	mov	r5, r3
	ldr	r4, [fp, #-24]
	ldrsh	r3, [fp, #-38]
	ldrh	r2, [fp, #-38]
	mov	r1, r2
	mov	r0, r3
	bl	func_37
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L38+12
	ldr	r2, [r3]
	ldr	r3, .L38+12
	ldr	r3, [r3]
	sub	r0, fp, #28
	str	r3, [sp]
	ldr	r3, .L38+12
	bl	func_47
	mov	r2, r0
	ldrsh	r3, [fp, #-38]
	sub	r1, fp, #28
	sub	r0, fp, #28
	bl	func_42
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L38+12
	ldr	r3, [r3]
	cmp	r2, r3
	ldrsh	r3, [fp, #-38]
	and	r3, r3, #1
	ldrsh	r2, [fp, #-38]
	mov	r1, r2
	mov	r0, r3
	bl	func_32
	mov	r1, r0
	ldr	r3, .L38+16
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	mov	r0, r4
	bl	func_27
	mov	r1, r0
	sub	r3, fp, #28
	sub	r2, fp, #28
	mov	r0, r5
	bl	func_21
	mov	r3, r0
	mov	r0, r3
	bl	func_19
	mov	r2, r0
	ldr	r3, [fp, #-20]
	str	r2, [r3]
	ldr	r0, .L38+20
	bl	step_hash
	ldr	r3, [fp, #-24]
	ldr	r3, [r3]
	ldr	r2, .L38
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L37
	bl	__stack_chk_fail
.L37:
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L39:
	.align	2
.L38:
	.word	.LC2
	.word	1778740927
	.word	437
	.word	g_2
	.word	g_324
	.word	438
	.size	func_15, .-func_15
	.global	__aeabi_idivmod
	.global	__aeabi_uidiv
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_19, %function
func_19:
	@ args = 0, pretend = 0, frame = 152
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #164
	mov	r3, r0
	strh	r3, [fp, #-158]	@ movhi
	ldr	r3, .L113
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L113+4
	str	r3, [fp, #-140]
	mov	r3, #0
	str	r3, [fp, #-136]
	mvn	r3, #10112
	strh	r3, [fp, #-146]	@ movhi
	ldr	r3, .L113+8
	str	r3, [fp, #-132]
	mvn	r3, #0
	str	r3, [fp, #-72]
	mvn	r3, #50
	strb	r3, [fp, #-150]
	mov	r3, #1
	strh	r3, [fp, #-144]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-68]
	ldr	r3, .L113+12
	str	r3, [fp, #-64]
	ldr	r0, .L113+16
	bl	step_hash
	ldr	r3, .L113+20
	str	r3, [fp, #-84]
	ldr	r3, .L113+24
	str	r3, [fp, #-128]
	sub	r3, fp, #140
	str	r3, [fp, #-80]
	ldr	r3, .L113+28
	str	r3, [fp, #-76]
	ldr	r0, .L113+32
	bl	step_hash
	ldr	r3, [fp, #-84]
	cmp	r3, #0
	beq	.L41
	mov	r3, #1
	str	r3, [fp, #-124]
	ldr	r0, .L113+36
	bl	step_hash
	ldr	r3, .L113+12
	mov	r2, #0
	str	r2, [r3]
	b	.L42
.L52:
	ldr	r3, .L113+40
	str	r3, [fp, #-48]
	ldr	r0, .L113+44
	bl	step_hash
	ldrsh	r3, [fp, #-158]
	cmp	r3, #0
	beq	.L43
	ldr	r3, .L113+4
	str	r3, [fp, #-40]
	ldr	r0, .L113+48
	bl	step_hash
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	bne	.L108
	ldr	r0, .L113+52
	bl	step_hash
	ldr	r3, .L113+40
	ldr	r3, [r3]
	mov	r4, r3
	ldrh	r3, [fp, #-158]
	mov	r1, r3
	mov	r0, #0
	bl	func_37
	mov	r3, r0
	and	r3, r3, #255
	lsl	r3, r3, #3
	mov	r2, r3
	ldr	r3, .L113+8
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r4
	bl	func_37
	ldrh	r3, [fp, #-158]
	rsb	r3, r3, #0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldrsh	r3, [fp, #-158]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	mov	r0, #276
	bl	step_hash
	ldrsh	r3, [fp, #-158]
	cmp	r3, #0
	beq	.L46
	b	.L47
.L43:
	ldr	r3, .L113+40
	str	r3, [fp, #-44]
	ldr	r0, .L113+56
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	str	r2, [r3]
.L46:
	ldr	r0, .L113+64
	bl	step_hash
	ldr	r3, .L113+68
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L48
.L49:
	ldr	r0, .L113+72
	bl	step_hash
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldrsh	r3, [fp, #-158]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-124]
	orr	r3, r2, r3
	str	r3, [fp, #-124]
	mov	r0, #284
	bl	step_hash
	ldr	r3, .L113+8
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r4, r3
	ldr	r3, .L113+68
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L113+76
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, .L113+40
	ldr	r3, [r3]
	ldr	r1, .L113+80
	cmp	r3, r1
	movne	r3, #1
	moveq	r3, #0
	and	r1, r3, #255
	ldr	r3, .L113+40
	ldr	r3, [r3]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	lsl	r3, r4, r3
	and	r3, r3, #255
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #3
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r2, r3, #2
	sub	r2, r2, r3
	ldr	r3, [fp, #-128]
	and	r3, r3, r2
	str	r3, [fp, #-128]
	ldr	r3, .L113+68
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L113+68
	strh	r3, [r2]	@ movhi
.L48:
	ldr	r3, .L113+68
	ldrsh	r3, [r3]
	cmn	r3, #1
	blt	.L49
	ldr	r0, .L113+84
	bl	step_hash
	ldr	r3, .L113+88
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L50
.L51:
	ldr	r0, .L113+92
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r2, [fp, #-140]
	str	r2, [r3]
	ldr	r0, .L113+96
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, .L113+88
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L113+88
	strh	r3, [r2]	@ movhi
.L50:
	ldr	r3, .L113+88
	ldrsh	r3, [r3]
	cmn	r3, #1
	bge	.L51
	mov	r0, #292
	bl	step_hash
	ldrsh	r3, [fp, #-158]
	cmp	r3, #0
.L47:
	ldr	r3, .L113+12
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L113+12
	str	r3, [r2]
.L42:
	ldr	r3, .L113+12
	ldr	r3, [r3]
	cmn	r3, #30
	blt	.L52
	b	.L53
.L41:
	mov	r3, #1
	strb	r3, [fp, #-151]
	sub	r3, fp, #128
	str	r3, [fp, #-100]
	ldr	r3, .L113+8
	str	r3, [fp, #-96]
	ldr	r0, .L113+100
	bl	step_hash
	ldr	r3, .L113+76
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-128]
	cmp	r2, r3
	beq	.L54
	mov	r3, #0
	strb	r3, [fp, #-153]
	mov	r0, #296
	bl	step_hash
	ldr	r3, [fp, #-140]
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	ldr	r1, .L113+104
	cmp	r3, r1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-140]
	orr	r2, r2, r1
	str	r2, [r3]
	mov	r0, #320
	bl	step_hash
	ldr	r3, .L113+4
	ldr	r3, [r3]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-84]
	cmp	r3, r2
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, .L113+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L113+40
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	and	r2, r4, r3
	ldrsh	r3, [fp, #-158]
	cmp	r2, r3
	beq	.L55
	ldr	r3, .L113+108
	strh	r3, [fp, #-148]	@ movhi
	ldr	r0, .L113+112
	bl	step_hash
	ldr	r3, .L113+76
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L56
.L59:
	mov	r3, #111
	strb	r3, [fp, #-149]
	ldr	r0, .L113+116
	bl	step_hash
	ldrb	r3, [fp, #-149]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L109
	ldr	r3, .L113+76
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L113+76
	strh	r3, [r2]	@ movhi
.L56:
	ldr	r3, .L113+76
	ldrsh	r3, [r3]
	cmp	r3, #8
	beq	.L59
	b	.L58
.L109:
	nop
.L58:
	ldr	r0, .L113+120
	bl	step_hash
	ldr	r3, .L113+8
	mov	r2, #0
	str	r2, [r3]
	b	.L60
.L61:
	ldr	r0, .L113+124
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r2, .L113+104
	str	r2, [r3]
	ldr	r3, .L113+8
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L113+8
	str	r3, [r2]
.L60:
	ldr	r3, .L113+8
	ldr	r3, [r3]
	cmn	r3, #5
	beq	.L61
	mov	r0, #308
	bl	step_hash
	ldr	r3, [fp, #-140]
	ldr	r1, [r3]
	ldrsh	r2, [fp, #-158]
	ldr	r3, [fp, #-140]
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r0, .L113+128
	bl	step_hash
	ldrsb	r3, [fp, #-153]
	lsl	r3, r3, #1
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldrh	r3, [fp, #-148]	@ movhi
	eor	r3, r3, r2
	strh	r3, [fp, #-148]	@ movhi
	b	.L62
.L55:
	mvn	r3, #48
	strb	r3, [fp, #-152]
	sub	r3, fp, #128
	str	r3, [fp, #-120]
	ldr	r0, .L113+132
	bl	step_hash
	ldr	r3, [fp, #-128]
	cmp	r3, #0
	beq	.L63
	sub	r3, fp, #140
	str	r3, [fp, #-116]
	mov	r0, #312
	bl	step_hash
	ldr	r3, [fp, #-116]
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-116]
	ldr	r1, .L113+104
	cmp	r3, r1
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-116]
	ldr	r3, [r3]
	orr	r2, r2, r1
	str	r2, [r3]
	ldr	r0, .L113+136
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r2, .L113+8
	str	r2, [r3]
	ldr	r0, .L113+140
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, .L113+144
	and	r3, r3, r1
	str	r3, [r2]
	ldr	r0, .L113+148
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-116]
	str	r2, [r3]
	b	.L64
.L63:
	ldr	r3, .L113+4
	str	r3, [fp, #-112]
	ldr	r0, .L113+152
	bl	step_hash
	ldrb	r2, [fp, #-152]	@ zero_extendqisi2
	ldr	r3, .L113+156
	ldr	r3, [r3]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r4, r3, #24
	ldr	r3, [fp, #-80]
	ldr	r3, [r3]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, #0
	bl	func_37
	ldr	r3, .L113+156
	ldr	r3, [r3]
	sub	r0, fp, #128
	str	r3, [sp]
	ldr	r3, [fp, #-112]
	mov	r2, #0
	mov	r1, r4
	bl	func_47
	mov	ip, r0
	ldrh	r3, [fp, #-158]	@ movhi
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldrsh	r2, [fp, #-146]
	ldr	r3, [fp, #-80]
	ldr	r0, [r3]
	ldrsh	r3, [fp, #-158]
	str	r3, [sp]
	mov	r3, r0
	mov	r0, ip
	bl	func_47
	str	r0, [fp, #-120]
.L64:
	ldr	r0, .L113+160
	bl	step_hash
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-120]
	str	r2, [r3]
	b	.L62
.L54:
	ldr	r3, .L113+164
	str	r3, [fp, #-92]
	sub	r3, fp, #128
	str	r3, [fp, #-88]
	ldr	r0, .L113+168
	bl	step_hash
	ldr	r3, .L113+172
	mov	r2, #17
	str	r2, [r3]
	b	.L65
.L66:
	ldr	r3, .L113+176
	str	r3, [fp, #-104]
	mov	r3, #0
	str	r3, [fp, #-108]
	ldr	r0, .L113+180
	bl	step_hash
	ldrh	r3, [fp, #-158]	@ movhi
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #1
	strb	r3, [fp, #-151]
	ldr	r3, .L113+172
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L113+172
	str	r3, [r2]
.L65:
	ldr	r3, .L113+172
	ldr	r3, [r3]
	cmn	r3, #21
	beq	.L66
	ldr	r0, .L113+184
	bl	step_hash
	ldr	r3, .L113+12
	mov	r2, #15
	str	r2, [r3]
	nop
	ldr	r3, .L113+12
	ldr	r3, [r3]
	cmn	r3, #14
	beq	.L107
	ldr	r0, .L113+188
	bl	step_hash
	ldr	r3, .L113+8
	b	.L105
.L107:
	mov	r0, #332
	bl	step_hash
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-88]
	str	r2, [r3]
	ldr	r0, .L113+192
	bl	step_hash
	ldr	r2, [fp, #-140]
	ldr	r3, [fp, #-140]
	ldr	r2, [r2]
	str	r2, [r3]
.L62:
	mov	r0, #356
	bl	step_hash
	ldr	r3, .L113+196
	mov	r2, #6
	str	r2, [r3]
	b	.L70
.L80:
	ldr	r3, .L113+4
	str	r3, [fp, #-60]
	mov	r0, #348
	bl	step_hash
	mov	r3, #13
	str	r3, [fp, #-128]
	b	.L71
.L79:
	mov	r3, #0
	str	r3, [fp, #-56]
	ldr	r0, .L113+200
	bl	step_hash
	ldrh	r3, [fp, #-158]
	mov	r1, r3
	mov	r0, #1
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	beq	.L72
	ldr	r3, .L113+204
	str	r3, [fp, #-52]
	ldr	r0, .L113+208
	bl	step_hash
	ldr	r3, .L113+76
	ldrsh	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldrsh	r3, [fp, #-158]
	cmp	r3, r2
	beq	.L73
	ldrh	r3, [fp, #-158]	@ movhi
	and	r3, r3, #255
	mov	r1, r3
	mov	r0, #2
	bl	__aeabi_uidiv
	mov	r3, r0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L113+172
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L74
.L73:
	mov	r3, #1
	b	.L75
.L74:
	mov	r3, #0
.L75:
	and	r3, r3, #255
	lsl	r3, r3, #7
	str	r3, [fp, #-52]
	ldr	r0, .L113+212
	bl	step_hash
	ldr	r3, [fp, #-56]
	str	r3, [fp, #-100]
	b	.L76
.L72:
	ldr	r0, .L113+216
	bl	step_hash
	ldr	r3, [fp, #-80]
	ldr	r2, [fp, #-96]
	str	r2, [r3]
.L76:
	ldr	r0, .L113+220
	bl	step_hash
	ldrsh	r3, [fp, #-158]
	cmp	r3, #0
	bne	.L110
	ldr	r3, [fp, #-128]
	sub	r3, r3, #2
	str	r3, [fp, #-128]
.L71:
	ldr	r3, [fp, #-128]
	cmn	r3, #22
	blt	.L79
	b	.L78
.L110:
	nop
.L78:
	ldr	r3, .L113+196
	ldr	r3, [r3]
	add	r3, r3, #7
	ldr	r2, .L113+196
	str	r3, [r2]
.L70:
	ldr	r3, .L113+196
	ldr	r3, [r3]
	cmp	r3, #18
	ble	.L80
	ldr	r0, .L113+224
	bl	step_hash
	mov	r3, #0
	strh	r3, [fp, #-158]	@ movhi
	b	.L81
.L82:
	mov	r0, #360
	bl	step_hash
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-132]
	ldr	r2, [r2]
	str	r2, [r3]
	ldrh	r3, [fp, #-158]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-158]	@ movhi
.L81:
	ldrsh	r3, [fp, #-158]
	cmp	r3, #6
	beq	.L82
	b	.L53
.L108:
	nop
.L53:
	ldr	r0, .L113+228
	bl	step_hash
	mvn	r3, #17
	strh	r3, [fp, #-158]	@ movhi
	b	.L83
.L104:
	mov	r3, #0
	str	r3, [fp, #-124]
	mov	r3, #0
	str	r3, [fp, #-36]
	ldr	r0, .L113+232
	bl	step_hash
	ldr	r3, .L113+156
	mov	r2, #0
	str	r2, [r3]
	b	.L84
.L101:
	ldr	r3, .L113+40
	str	r3, [fp, #-32]
	ldr	r3, .L113+4
	str	r3, [fp, #-28]
	mov	r0, #380
	bl	step_hash
	ldr	r3, .L113+88
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L85
.L93:
	sub	r3, fp, #140
	str	r3, [fp, #-20]
	mov	r0, #376
	bl	step_hash
	ldr	r3, .L113+196
	mvn	r2, #6
	str	r2, [r3]
	b	.L86
.L87:
	ldr	r0, .L113+236
	bl	step_hash
	ldr	r2, [fp, #-124]
	ldr	r3, [fp, #-80]
	str	r2, [r3]
	ldr	r3, .L113+196
	ldr	r3, [r3]
	sub	r3, r3, #8
	ldr	r2, .L113+196
	str	r3, [r2]
.L86:
	ldr	r3, .L113+196
	ldr	r3, [r3]
	cmn	r3, #28
	beq	.L87
	ldr	r0, .L113+240
	bl	step_hash
	ldr	r2, [fp, #-132]
	ldr	r3, [fp, #-132]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r0, .L113+244
	bl	step_hash
	ldr	r3, [fp, #-132]
	ldr	r2, [r3]
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	beq	.L88
	ldrsh	r3, [fp, #-158]
	cmp	r3, #0
	beq	.L89
.L88:
	mov	r3, #1
	b	.L90
.L89:
	mov	r3, #0
.L90:
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, .L113+12
	ldr	r3, [r3]
	and	r3, r3, #255
	lsl	r3, r1, r3
	cmp	r3, #0
	beq	.L91
	ldr	r3, .L113+40
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L91
	mov	r3, #1
	b	.L92
.L91:
	mov	r3, #0
.L92:
	ldr	r1, .L113+248
	cmp	r3, r1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, .L113+156
	ldr	r3, [r3]
	cmp	r1, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-132]
	and	r2, r2, r1
	str	r2, [r3]
	ldr	r0, .L113+252
	bl	step_hash
	sub	r3, fp, #132
	str	r3, [fp, #-36]
	ldr	r3, .L113+88
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L113+88
	strh	r3, [r2]	@ movhi
.L85:
	ldr	r3, .L113+88
	ldrsh	r3, [r3]
	cmn	r3, #3
	bge	.L93
	mov	r0, #392
	bl	step_hash
	ldr	r3, .L113+68
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L94
.L99:
	ldr	r3, .L113+256
	strh	r3, [fp, #-142]	@ movhi
	mov	r0, #384
	bl	step_hash
	ldr	r3, [fp, #-132]
	ldr	r2, [r3]
	ldr	r3, [fp, #-132]
	and	r2, r2, #9
	str	r2, [r3]
	ldr	r0, .L113+260
	bl	step_hash
	ldrh	r3, [fp, #-142]
	cmp	r3, #0
	bne	.L111
	ldr	r0, .L113+264
	bl	step_hash
	mov	r1, #0
	mov	r0, #0
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, .L113+68
	ldrsh	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	lsl	r3, r2, r3
	cmp	r3, #2
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-76]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	asr	r3, r1, r3
	cmp	r3, #0
	beq	.L97
	ldr	r0, .L113+268
	bl	step_hash
	ldr	r3, .L113+60
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	str	r2, [r3]
	b	.L98
.L97:
	mvn	r3, #0
	str	r3, [fp, #-24]
	ldr	r0, .L113+272
	bl	step_hash
	ldr	r3, [fp, #-132]
	ldr	r2, .L113+276
	str	r2, [r3]
	ldr	r0, .L113+280
	bl	step_hash
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
.L98:
	ldr	r3, .L113+68
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #8
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L113+68
	strh	r3, [r2]	@ movhi
.L94:
	ldr	r3, .L113+68
	ldrsh	r3, [r3]
	cmp	r3, #14
	bgt	.L99
	b	.L96
.L111:
	nop
.L96:
	ldr	r0, .L113+284
	bl	step_hash
	ldr	r3, [fp, #-28]
	ldr	r3, [r3]
	and	r2, r3, #1
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r0, .L113+288
	bl	step_hash
	ldr	r3, .L113+88
	ldrsh	r3, [r3]
	cmp	r3, #0
	ldr	r3, .L113+156
	ldr	r3, [r3]
	add	r3, r3, #7
	ldr	r2, .L113+156
	str	r3, [r2]
.L84:
	ldr	r3, .L113+156
	ldr	r3, [r3]
	cmp	r3, #4
	beq	.L101
	mov	r0, #396
	bl	step_hash
	ldr	r3, [fp, #-132]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L112
	ldrh	r3, [fp, #-158]
	add	r3, r3, #6
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	strh	r3, [fp, #-158]	@ movhi
.L83:
	ldrsh	r3, [fp, #-158]
	cmn	r3, #9
	blt	.L104
	b	.L103
.L112:
	nop
.L103:
	ldr	r0, .L113+292
	bl	step_hash
	ldr	r3, .L113+12
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L113+296
	eor	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L113+12
	str	r2, [r3]
	ldr	r0, .L113+300
	bl	step_hash
	ldr	r3, [fp, #-132]
	ldrsh	r2, [fp, #-158]
	str	r2, [r3]
	mov	r0, #436
	bl	step_hash
	ldr	r3, [fp, #-132]
.L105:
	ldr	r2, .L113
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L106
	bl	__stack_chk_fail
.L106:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L114:
	.align	2
.L113:
	.word	.LC3
	.word	g_523
	.word	g_255
	.word	g_70
	.word	434
	.word	1633422177
	.word	296088768
	.word	-2091765080
	.word	362
	.word	293
	.word	g_2
	.word	279
	.word	274
	.word	275
	.word	278
	.word	g_189
	.word	285
	.word	g_127
	.word	283
	.word	g_222
	.word	-738423282
	.word	291
	.word	g_236
	.word	289
	.word	290
	.word	334
	.word	g_190
	.word	-25054
	.word	302
	.word	301
	.word	307
	.word	306
	.word	309
	.word	318
	.word	313
	.word	314
	.word	387987194
	.word	315
	.word	317
	.word	g_324
	.word	319
	.word	-1504920082
	.word	326
	.word	g_114
	.word	-286382318
	.word	325
	.word	331
	.word	330
	.word	333
	.word	g_423
	.word	346
	.word	1398216069
	.word	342
	.word	343
	.word	345
	.word	347
	.word	361
	.word	397
	.word	395
	.word	375
	.word	377
	.word	378
	.word	64483
	.word	379
	.word	18544
	.word	385
	.word	391
	.word	387
	.word	389
	.word	909813272
	.word	390
	.word	393
	.word	394
	.word	398
	.word	-41430566
	.word	435
	.size	func_19, .-func_19
	.global	__aeabi_idiv
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_21, %function
func_21:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	str	r0, [fp, #-24]
	str	r1, [fp, #-28]
	str	r2, [fp, #-32]
	str	r3, [fp, #-36]
	ldr	r3, .L126
	str	r3, [fp, #-20]
	ldr	r3, .L126+4
	str	r3, [fp, #-16]
	ldr	r0, .L126+8
	bl	step_hash
	mov	r3, #23
	str	r3, [fp, #-24]
	b	.L116
.L119:
	mov	r0, #256
	bl	step_hash
	ldr	r3, .L126+12
	ldr	r2, [r3]
	ldr	r3, .L126+16
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L126+12
	str	r3, [r2]
	ldr	r0, .L126+20
	bl	step_hash
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L125
	ldr	r0, .L126+24
	bl	step_hash
	ldr	r3, .L126+28
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	b	.L118
.L125:
	nop
.L118:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L116:
	ldr	r3, [fp, #-24]
	cmp	r3, #43
	bhi	.L119
	ldr	r0, .L126+32
	bl	step_hash
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L120
	mov	r3, #1
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r0, .L126+36
	bl	step_hash
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	cmp	r3, #0
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r0, .L126+40
	bl	step_hash
	ldr	r3, .L126+44
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r1, r3
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L121
	ldr	r2, .L126+48
	b	.L122
.L121:
	ldr	r2, .L126+52
.L122:
	ldr	r3, .L126+12
	ldr	r3, [r3]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-12]
	and	r3, r3, #255
	mov	r0, r3
	ldr	r3, [fp, #-24]
	and	r3, r3, #255
	asr	r3, r0, r3
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mul	r2, r3, r1
	ldr	r3, .L126+44
	ldr	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	b	.L123
.L120:
	mov	r0, #264
	bl	step_hash
	ldr	r3, .L126+4
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
.L123:
	ldr	r0, .L126+56
	bl	step_hash
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L127:
	.align	2
.L126:
	.word	1237008314
	.word	g_189
	.word	259
	.word	g_70
	.word	g_114
	.word	257
	.word	258
	.word	g_423
	.word	265
	.word	261
	.word	262
	.word	g_255
	.word	-40456
	.word	-20228
	.word	266
	.size	func_21, .-func_21
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_27, %function
func_27:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #40
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	mov	r3, r2
	strh	r3, [fp, #-38]	@ movhi
	ldr	r3, .L135
	str	r3, [fp, #-24]
	ldr	r3, .L135+4
	str	r3, [fp, #-20]
	ldr	r3, .L135+8
	str	r3, [fp, #-16]
	mov	r0, #242
	bl	step_hash
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-36]
	ldr	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	mov	r0, #250
	bl	step_hash
	ldr	r3, .L135+12
	mvn	r2, #24
	strh	r2, [r3]	@ movhi
	nop
	ldr	r3, .L135+12
	ldrsh	r3, [r3]
	cmn	r3, #16
	blt	.L131
	mvn	r3, #4
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-8]
	mov	r0, #246
	bl	step_hash
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	mov	r0, #247
	bl	step_hash
	ldr	r3, [fp, #-16]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L134
	mov	r0, #248
	bl	step_hash
	ldr	r3, [fp, #-16]
	ldr	r2, [r3]
	ldrh	r1, [fp, #-38]
	ldr	r3, .L135+16
	ldr	r3, [r3]
	eor	r3, r3, r1
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	str	r2, [r3]
	mov	r0, #249
	bl	step_hash
	ldr	r3, [fp, #-8]
	b	.L132
.L134:
	nop
.L131:
	mov	r0, #251
	bl	step_hash
	ldr	r3, [fp, #-16]
.L132:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L136:
	.align	2
.L135:
	.word	g_2
	.word	-359637220
	.word	g_70
	.word	g_236
	.word	g_114
	.size	func_27, .-func_27
	.section	.rodata
	.align	2
.LC4:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_32, %function
func_32:
	@ args = 0, pretend = 0, frame = 104
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, fp, lr}
	add	fp, sp, #16
	sub	sp, sp, #116
	str	r0, [fp, #-120]
	str	r1, [fp, #-124]
	ldr	r3, .L173
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, .L173+4
	str	r3, [fp, #-104]
	mvn	r3, #2
	str	r3, [fp, #-100]
	ldr	r3, .L173+8
	str	r3, [fp, #-96]
	mov	r3, #0
	str	r3, [fp, #-92]
	mov	r0, #238
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-120]
	b	.L138
.L170:
	mov	r3, #3
	strb	r3, [fp, #-110]
	ldr	r3, .L173+8
	str	r3, [fp, #-88]
	ldr	r3, .L173+12
	str	r3, [fp, #-84]
	mov	r0, #232
	bl	step_hash
	ldr	r3, .L173+12
	mov	r2, #0
	str	r2, [r3]
	b	.L139
.L162:
	ldr	r3, .L173+8
	str	r3, [fp, #-76]
	mvn	r3, #71
	strb	r3, [fp, #-109]
	mov	r3, #1
	str	r3, [fp, #-72]
	mov	r3, #1
	strb	r3, [fp, #-108]
	mvn	r3, #2672
	strh	r3, [fp, #-106]	@ movhi
	ldr	r3, .L173+16
	str	r3, [fp, #-68]
	mov	r0, #199
	bl	step_hash
	sub	r3, fp, #124
	str	r3, [fp, #-104]
	mov	r0, #231
	bl	step_hash
	ldrb	r3, [fp, #-110]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L140
	sub	r3, fp, #104
	str	r3, [fp, #-28]
	mov	r0, #201
	bl	step_hash
	ldr	r2, [fp, #-76]
	ldr	r3, [fp, #-88]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, [fp, #-28]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-124]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-120]
	cmp	r3, r2
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	mov	r1, #0
	mov	r0, r3
	bl	func_37
	mov	r3, r0
	and	r3, r3, #255
	and	r3, r3, #68
	ldr	r2, .L173+20
	ldrsh	r2, [r2]
	lsl	r2, r2, #24
	asr	r2, r2, #24
	lsl	r3, r3, r2
	and	r3, r3, #247
	orr	r3, r4, r3
	ldr	r2, [fp, #-100]
	orr	r3, r3, r2
	str	r3, [fp, #-100]
	b	.L141
.L140:
	mvn	r3, #0
	str	r3, [fp, #-64]
	ldr	r3, .L173+24
	str	r3, [fp, #-60]
	ldr	r3, .L173+8
	str	r3, [fp, #-56]
	ldr	r3, .L173+4
	str	r3, [fp, #-52]
	mov	r0, #223
	bl	step_hash
	ldrb	r3, [fp, #-109]	@ zero_extendqisi2
	ldrb	r2, [fp, #-109]	@ zero_extendqisi2
	ldr	r1, [fp, #-64]
	cmp	r1, #1
	movls	r1, #1
	movhi	r1, #0
	and	r1, r1, #255
	orr	r2, r2, r1
	cmp	r2, #0
	movne	r2, #1
	moveq	r2, #0
	and	r2, r2, #255
	lsl	r2, r2, #16
	lsr	r1, r2, #16
	ldr	r2, [fp, #-72]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	orr	r2, r1, r2
	lsl	r2, r2, #16
	lsr	r1, r2, #16
	ldr	r2, .L173+24
	ldr	r2, [r2]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	and	r2, r2, r1
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	sub	r3, r3, r2
	cmp	r3, #1
	bgt	.L142
	mov	r0, #204
	bl	step_hash
	ldr	r3, [fp, #-60]
	b	.L171
.L142:
	ldr	r3, .L173+28
	str	r3, [fp, #-48]
	ldr	r3, .L173+4
	str	r3, [fp, #-44]
	mov	r3, #0
	str	r3, [fp, #-40]
	mov	r0, #212
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-124]
	b	.L144
.L147:
	ldr	r3, .L173+32
	str	r3, [fp, #-36]
	sub	r3, fp, #100
	str	r3, [fp, #-32]
	mov	r0, #209
	bl	step_hash
	ldr	r3, .L173+8
	ldr	r3, [r3]
	sub	r2, fp, #124
	str	r2, [r3]
	mov	r0, #210
	bl	step_hash
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, #1008
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L173+24
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	eor	r2, r4, r3
	ldr	r3, .L173+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L173+36
	and	r3, r3, r1
	cmp	r2, r3
	bgt	.L145
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L173+12
	ldr	r3, [r3]
	and	r3, r3, #255
	asr	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L173+40
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	beq	.L145
	mov	r3, #1
	b	.L146
.L145:
	mov	r3, #0
.L146:
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	ldr	r3, [fp, #-32]
	str	r2, [r3]
	mov	r0, #211
	bl	step_hash
	ldr	r3, .L173+8
	ldr	r3, [r3]
	ldr	r0, [r3]
	ldr	r3, .L173+44
	ldrsh	r3, [r3]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L173+48
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r2, r3
	lsl	r2, r2, #1
	add	r3, r2, r3
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mul	r2, r3, r2
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r3, [r3]
	str	r3, [sp]
	ldr	r3, [fp, #-44]
	bl	func_47
	mov	ip, r0
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L173+48
	ldr	r2, [r3]
	ldr	r3, .L173+8
	ldr	r3, [r3]
	ldr	r0, [r3]
	ldr	r3, [fp, #-76]
	ldr	r4, [r3]
	ldr	r3, [fp, #-120]
	str	r3, [sp]
	mov	r3, r0
	mov	r0, ip
	bl	func_47
	mov	r3, r0
	str	r3, [r4]
	ldr	r3, [fp, #-124]
	add	r3, r3, #2
	str	r3, [fp, #-124]
.L144:
	ldr	r3, [fp, #-124]
	cmp	r3, #3
	ble	.L147
	mov	r0, #213
	bl	step_hash
	ldr	r3, [fp, #-124]
	cmp	r3, #0
	beq	.L148
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L173+52
	smull	r1, r3, r2, r3
	add	r3, r3, r2
	asr	r1, r3, #2
	asr	r3, r2, #31
	sub	r1, r1, r3
	mov	r3, r1
	lsl	r3, r3, #3
	sub	r3, r3, r1
	sub	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	cmp	r3, #0
	beq	.L148
	mov	r3, #1
	b	.L149
.L148:
	mov	r3, #0
.L149:
	lsl	r3, r3, #24
	asr	r3, r3, #24
	asr	r3, r3, #6
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-104]
	str	r2, [r3]
	mov	r0, #221
	bl	step_hash
	ldr	r3, [fp, #-120]
	cmp	r3, #0
	beq	.L150
	mov	r0, #215
	bl	step_hash
	ldr	r3, .L173+56
	ldr	r3, [r3]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L173+56
	ldr	r3, [r3]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	mov	r0, #216
	bl	step_hash
	ldr	r3, .L173+48
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L151
	b	.L141
.L150:
	mvn	r3, #8
	strb	r3, [fp, #-107]
	mov	r0, #218
	bl	step_hash
	ldr	r3, [fp, #-104]
	ldr	r1, [r3]
	ldrb	r2, [fp, #-107]	@ zero_extendqisi2
	ldr	r3, [fp, #-104]
	and	r2, r2, r1
	str	r2, [r3]
	mov	r0, #219
	bl	step_hash
	ldr	r3, .L173+44
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r3, .L173+40
	ldr	r2, [r3]
	ldr	r3, [fp, #-124]
	cmp	r2, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	asr	r3, r1, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	asr	r3, r3, #6
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-100]
	orr	r3, r2, r3
	str	r3, [fp, #-100]
	mov	r0, #220
	bl	step_hash
	ldr	r2, [fp, #-40]
	ldr	r3, [fp, #-44]
	str	r2, [r3]
.L151:
	mov	r0, #222
	bl	step_hash
	ldr	r3, [fp, #-44]
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	mov	r0, #229
	bl	step_hash
	ldr	r3, .L173+56
	mov	r2, #0
	str	r2, [r3]
	b	.L152
.L154:
	mov	r0, #227
	bl	step_hash
	ldr	r4, [fp, #-120]
	ldr	r3, .L173+20
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldrsb	r3, [fp, #-108]
	orr	r3, r2, r3
	mov	r2, r3
	ldrh	r3, [fp, #-106]
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	and	r3, r3, #255
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L173+12
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, [fp, #-104]
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	str	r3, [sp]
	ldr	r3, .L173+4
	ldr	r0, .L173+24
	bl	func_47
	mov	r3, r0
	ldr	r2, .L173+4
	ldr	r2, [r2]
	str	r2, [sp]
	mov	r2, r4
	mov	r1, #0
	ldr	r0, .L173+24
	bl	func_47
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r2, [fp, #-124]
	ldr	r3, [fp, #-56]
	ldr	r4, [r3]
	ldr	r3, [fp, #-120]
	str	r3, [sp]
	ldr	r3, [fp, #-52]
	bl	func_47
	mov	r3, r0
	str	r3, [r4]
	mov	r0, #228
	bl	step_hash
	ldr	r3, .L173+32
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	ldr	r3, .L173+56
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L173+56
	str	r3, [r2]
.L152:
	ldr	r3, .L173+56
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L154
	mov	r0, #230
	bl	step_hash
	ldr	r3, [fp, #-96]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	bne	.L155
	ldrb	r4, [fp, #-110]	@ zero_extendqisi2
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	mov	r6, r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r5, r3, #16
	ldr	r3, [fp, #-124]
	mov	r2, r3
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L173+60
	umull	r1, r3, r2, r3
	lsr	r3, r3, #13
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	eor	r3, r3, r5
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r2, r3
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-60]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r6
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L173+4
	ldr	r3, [r3]
	eor	r3, r3, r2
	mov	r2, r3
	ldr	r3, [fp, #-120]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-68]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mul	r3, r2, r3
	cmp	r3, #0
	beq	.L156
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L156
	mov	r3, #1
	b	.L157
.L156:
	mov	r3, #0
.L157:
	mvn	r2, r3
	ldr	r3, .L173+24
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L158
	ldr	r3, .L173+64
	b	.L159
.L158:
	ldr	r3, .L173+68
.L159:
	cmp	r3, r4
	ble	.L160
.L155:
	mov	r2, #1
	b	.L161
.L160:
	mov	r2, #0
.L161:
	ldr	r3, .L173+4
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-52]
	str	r2, [r3]
.L141:
	ldr	r3, .L173+12
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L173+12
	str	r3, [r2]
.L139:
	ldr	r3, .L173+12
	ldr	r3, [r3]
	cmp	r3, #3
	beq	.L162
	mov	r0, #237
	bl	step_hash
	ldr	r3, .L173+48
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	asr	r3, r3, #2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r4, r3
	ldr	r3, [fp, #-124]
	mov	r0, r3
	ldr	r2, [fp, #-96]
	ldr	r3, [fp, #-92]
	cmp	r2, r3
	beq	.L163
	ldr	r3, .L173+56
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L164
.L163:
	mov	r3, #1
	b	.L165
.L164:
	mov	r3, #0
.L165:
	lsl	r3, r3, #24
	asr	r3, r3, #24
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r1, [fp, #-92]
	ldr	r3, [fp, #-88]
	cmp	r1, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	bl	func_37
	mov	r3, r0
	mov	r0, r3
	ldr	r3, .L173+4
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	asr	r3, r3, #2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, .L173+72
	add	r3, r2, r3
	ldr	r2, .L173+40
	ldr	r2, [r2]
	cmp	r3, r2
	beq	.L166
	ldr	r3, .L173+48
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L166
	mov	r3, #1
	b	.L167
.L166:
	mov	r3, #0
.L167:
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	bl	func_37
	mov	r3, r0
	cmp	r4, r3
	beq	.L168
	mov	r0, #234
	bl	step_hash
	ldr	r3, [fp, #-104]
	ldr	r1, [r3]
	ldr	r3, .L173+24
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	rsb	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r2, r3, #14
	ldr	r3, [fp, #-104]
	orr	r2, r1, r2
	str	r2, [r3]
	b	.L169
.L168:
	ldr	r3, .L173+12
	str	r3, [fp, #-80]
	mov	r0, #236
	bl	step_hash
	ldr	r3, [fp, #-124]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-80]
	str	r2, [r3]
.L169:
	ldr	r3, [fp, #-120]
	add	r3, r3, #1
	str	r3, [fp, #-120]
.L138:
	ldr	r3, [fp, #-120]
	cmp	r3, #27
	bhi	.L170
	mov	r0, #239
	bl	step_hash
	ldr	r3, [fp, #-104]
	ldr	r2, [r3]
	ldr	r3, .L173+44
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-104]
	eor	r2, r2, r1
	str	r2, [r3]
	mov	r0, #240
	bl	step_hash
	ldr	r3, .L173+24
.L171:
	ldr	r2, .L173
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L172
	bl	__stack_chk_fail
.L172:
	mov	r0, r3
	sub	sp, fp, #16
	@ sp needed
	pop	{r4, r5, r6, fp, pc}
.L174:
	.align	2
.L173:
	.word	.LC4
	.word	g_255
	.word	g_189
	.word	g_70
	.word	-449860564
	.word	g_236
	.word	g_2
	.word	881977540
	.word	g_190
	.word	851974015
	.word	g_324
	.word	g_222
	.word	g_114
	.word	-1840700269
	.word	g_423
	.word	1634126241
	.word	-38813
	.word	-38814
	.word	-424868573
	.size	func_32, .-func_32
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_37, %function
func_37:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, r1
	strh	r3, [fp, #-18]	@ movhi
	ldr	r3, .L177
	str	r3, [fp, #-12]
	ldr	r3, .L177+4
	str	r3, [fp, #-8]
	mov	r0, #6
	bl	step_hash
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-8]
	mov	r0, #7
	bl	step_hash
	ldrsh	r3, [fp, #-18]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L178:
	.align	2
.L177:
	.word	446861578
	.word	1191382979
	.size	func_37, .-func_37
	.global	__aeabi_uidivmod
	.section	.rodata
	.align	2
.LC5:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_42, %function
func_42:
	@ args = 0, pretend = 0, frame = 256
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #264
	str	r0, [fp, #-264]
	str	r1, [fp, #-268]
	str	r2, [fp, #-272]
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
	ldr	r3, .L295
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	mvn	r3, #0
	strb	r3, [fp, #-253]
	mov	r3, #126
	strb	r3, [fp, #-257]
	ldr	r3, .L295+4
	str	r3, [fp, #-224]
	mov	r3, #21
	strb	r3, [fp, #-252]
	ldr	r3, .L295+112
	str	r3, [fp, #-220]
	mvn	r3, #0
	str	r3, [fp, #-192]
	mov	r3, #0
	str	r3, [fp, #-204]
	ldr	r3, .L295+8
	str	r3, [fp, #-188]
	mov	r3, #26
	strb	r3, [fp, #-251]
	ldr	r3, .L295+104
	str	r3, [fp, #-184]
	ldr	r3, .L295+12
	strh	r3, [fp, #-236]	@ movhi
	mov	r0, #180
	bl	step_hash
	ldr	r3, .L295+108
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L180
	mov	r3, #5
	strb	r3, [fp, #-242]
	mov	r3, #0
	strb	r3, [fp, #-256]
	ldr	r3, .L295+132
	str	r3, [fp, #-212]
	mov	r3, #0
	str	r3, [fp, #-76]
	mov	r0, #14
	bl	step_hash
	ldrb	r3, [fp, #-253]	@ zero_extendqisi2
	sub	r2, fp, #272
	sub	r2, r2, #2
	ldrh	r2, [r2]
	lsl	r3, r3, r2
	sub	r2, fp, #272
	sub	r2, r2, #2
	ldrsh	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r4, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	sub	r2, fp, #256
	ldrsb	r2, [r2]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	lsr	r2, r2, #4
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	cmp	r3, r2
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, #1
	bl	func_37
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_idiv
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, .L295+108
	ldr	r3, [r3]
	and	r3, r3, #255
	add	r3, r2, r3
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrsb	r3, [fp, #-242]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r1, r3
	ldr	r3, [fp, #-212]
	ldr	r2, [r3]
	ldr	r3, [fp, #-212]
	orr	r2, r1, r2
	str	r2, [r3]
	mov	r0, #22
	bl	step_hash
	mvn	r3, #23
	strb	r3, [fp, #-256]
	b	.L181
.L184:
	sub	r3, fp, #212
	str	r3, [fp, #-72]
	mov	r0, #18
	bl	step_hash
	ldr	r3, [fp, #-72]
	mov	r2, #0
	str	r2, [r3]
	mov	r0, #19
	bl	step_hash
	ldr	r3, [fp, #-268]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L291
	mov	r0, #20
	bl	step_hash
	ldr	r3, .L295+132
	mvn	r2, #0
	str	r2, [r3]
	mov	r0, #21
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	sub	r2, fp, #272
	sub	r2, r2, #2
	ldrh	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L295+132
	str	r2, [r3]
	ldrb	r3, [fp, #-256]	@ zero_extendqisi2
	sub	r3, r3, #1
	and	r3, r3, #255
	strb	r3, [fp, #-256]
.L181:
	sub	r3, fp, #256
	ldrsb	r3, [r3]
	cmn	r3, #28
	bne	.L184
	b	.L183
.L291:
	nop
.L183:
	mov	r0, #54
	bl	step_hash
	ldrb	r3, [fp, #-253]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L185
	mov	r3, #0
	str	r3, [fp, #-32]
	ldr	r3, .L295+132
	str	r3, [fp, #-28]
	mov	r0, #24
	bl	step_hash
	ldr	r3, [fp, #-28]
	ldr	r2, .L295+16
	str	r2, [r3]
	b	.L202
.L185:
	ldr	r3, .L295+108
	str	r3, [fp, #-208]
	mvn	r3, #3
	str	r3, [fp, #-68]
	mov	r0, #53
	bl	step_hash
	ldr	r3, .L295+108
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L295+108
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	beq	.L187
	mov	r3, #7
	strb	r3, [fp, #-238]
	ldr	r3, .L295+132
	str	r3, [fp, #-40]
	sub	r3, fp, #208
	str	r3, [fp, #-36]
	mov	r0, #27
	bl	step_hash
	ldr	r3, .L295+108
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, [fp, #-208]
	ldr	r2, .L295+132
	cmp	r3, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	bl	func_37
	ldrsb	r3, [fp, #-238]
	sub	r2, fp, #272
	sub	r2, r2, #2
	ldrsh	r2, [r2]
	cmp	r2, #1
	movgt	r2, #1
	movle	r2, #0
	and	r2, r2, #255
	eor	r3, r3, r2
	ldr	r2, .L295+20
	cmp	r3, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+108
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	mov	r0, #28
	bl	step_hash
	ldr	r0, [fp, #-268]
	ldrsb	r1, [fp, #-253]
	ldr	r3, [fp, #-208]
	ldr	r2, [r3]
	ldr	r3, [fp, #-272]
	ldr	ip, .L295+108
	ldr	ip, [ip]
	str	ip, [sp]
	bl	func_47
	mov	r2, r0
	ldr	r3, [fp, #-36]
	str	r2, [r3]
	mov	r0, #29
	bl	step_hash
	ldr	r3, .L295+108
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	b	.L288
.L187:
	ldr	r3, .L295+108
	str	r3, [fp, #-64]
	mvn	r3, #6
	str	r3, [fp, #-200]
	mvn	r3, #13
	strb	r3, [fp, #-241]
	mov	r0, #31
	bl	step_hash
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L295+24
	smull	r1, r2, r3, r2
	add	r2, r2, r3
	asr	r2, r2, #14
	asr	r3, r3, #31
	sub	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L295+132
	str	r2, [r3]
	mov	r0, #38
	bl	step_hash
	mov	r3, #13
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
	b	.L189
.L190:
	ldr	r3, .L295+132
	str	r3, [fp, #-48]
	sub	r3, fp, #212
	str	r3, [fp, #-44]
	mov	r0, #35
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r4, r3, #24
	ldr	r3, [fp, #-76]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r6, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r5, r3, #24
	ldr	r3, [fp, #-48]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r7, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	orr	r3, r2, r3
	mov	r1, r3
	mov	r0, r7
	bl	__aeabi_uidivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	cmp	r2, r3
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #256
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	str	r3, [sp]
	ldr	r3, .L295+108
	mov	r1, r5
	ldr	r0, .L295+132
	bl	func_47
	mov	ip, r0
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r1, r3, #24
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r0, [fp, #-268]
	sub	r3, fp, #256
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	str	r3, [sp]
	mov	r3, r0
	mov	r0, ip
	bl	func_47
	mov	r3, r0
	ldr	r2, .L295+108
	ldr	r2, [r2]
	str	r2, [sp]
	mov	r2, r6
	mov	r1, r4
	ldr	r0, [fp, #-64]
	bl	func_47
	mov	r2, r0
	ldr	r3, [fp, #-44]
	str	r2, [r3]
	mov	r0, #36
	bl	step_hash
	ldr	r3, [fp, #-68]
	ldr	r2, .L295+28
	cmp	r3, r2
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r2, .L295+108
	cmp	r3, r2
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-212]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	asr	r3, r2, r3
	cmp	r4, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	and	r2, r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-200]
	eor	r3, r3, r2
	str	r3, [fp, #-200]
	mov	r0, #37
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	mvn	r2, #0
	lsl	r4, r2, r3
	ldr	r3, [fp, #-212]
	ldr	r2, [fp, #-64]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r5, r3, #255
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-44]
	ldr	r3, [r3]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r3, r3, #24
	lsl	r2, r3, #5
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r5
	and	r3, r3, #255
	cmp	r4, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-48]
	ldr	r3, [r3]
	orr	r2, r2, r3
	ldr	r3, [fp, #-48]
	str	r2, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	add	r3, r3, #6
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
.L189:
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #29
	beq	.L190
	mov	r0, #51
	bl	step_hash
	mov	r3, #0
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #16
	bgt	.L191
	ldr	r3, .L295+32
	str	r3, [fp, #-60]
	mov	r0, #50
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	ldr	r2, [fp, #-208]
	ldr	r2, [r2]
	cmp	r2, #0
	movgt	r2, #1
	movle	r2, #0
	and	r2, r2, #255
	cmp	r3, r2
	movle	r3, #1
	movgt	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-64]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	and	r3, r3, r2
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L192
	mov	r3, #72
	strb	r3, [fp, #-239]
	sub	r3, fp, #212
	str	r3, [fp, #-52]
	mov	r0, #43
	bl	step_hash
	ldr	r0, [fp, #-264]
	ldr	r3, .L295+108
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	str	r3, [sp]
	ldr	r3, [fp, #-64]
	bl	func_47
	mov	r4, r0
	ldrsb	r2, [fp, #-239]
	ldr	r3, [fp, #-208]
	ldr	r3, [r3]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	and	r3, r3, #255
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L295+132
	ldr	r2, [r3]
	ldr	r3, .L295+132
	ldr	r3, [r3]
	str	r3, [sp]
	ldr	r3, .L295+132
	mov	r0, r4
	bl	func_47
	mov	r2, r0
	ldr	r3, [fp, #-52]
	str	r2, [r3]
	mov	r0, #44
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L295+124
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L295+124
	str	r3, [r2]
	mov	r0, #45
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	b	.L288
.L192:
	mov	r3, #1
	strb	r3, [fp, #-240]
	ldr	r3, .L295+132
	str	r3, [fp, #-56]
	mov	r0, #47
	bl	step_hash
	ldr	r3, .L295+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L193
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, #1
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L295+108
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	and	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #29
	sub	r3, r3, r2
	lsl	r3, r3, #3
	mov	r2, r3
	ldrsb	r3, [fp, #-240]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	ldr	r3, [fp, #-264]
	cmp	r3, #0
	bne	.L194
	ldr	r3, .L295+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L194
	mov	r2, #1
	b	.L195
.L194:
	mov	r2, #0
.L195:
	ldr	r3, .L295+124
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L196
	mov	r3, #1
	b	.L197
.L196:
	mov	r3, #0
.L197:
	cmp	r3, #0
	beq	.L193
	mov	r3, #1
	b	.L198
.L193:
	mov	r3, #0
.L198:
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	eor	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L295+92
	strh	r3, [r2]	@ movhi
	mov	r0, #48
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L199
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r4, [r3]
	ldr	r3, .L295+108
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, r3
	mov	r0, #1
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-212]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, #0
	bl	func_37
	ldr	r3, .L295+124
	ldr	r3, [r3]
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	rsb	r3, r3, #0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r4
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r2, r3, #24
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldrsb	r3, [fp, #-240]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	lsl	r3, r3, #16
	asr	r3, r3, #16
	asr	r3, r3, #9
	lsl	r3, r3, #16
	asr	r3, r3, #16
	cmp	r3, #0
	beq	.L199
	mov	r3, #1
	b	.L200
.L199:
	mov	r3, #0
.L200:
	and	r3, r3, #255
	ldr	r2, .L295+36
	umull	r1, r3, r2, r3
	lsr	r3, r3, #6
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	mov	r0, #49
	bl	step_hash
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	b	.L288
.L191:
	mov	r0, #52
	bl	step_hash
	ldr	r3, [fp, #-272]
	ldr	r3, [r3]
	strb	r3, [fp, #-241]
	b	.L202
.L180:
	ldr	r3, .L295+40
	str	r3, [fp, #-196]
	mov	r3, #0
	str	r3, [fp, #-216]
	sub	r3, fp, #216
	str	r3, [fp, #-180]
	mov	r3, #50
	strb	r3, [fp, #-250]
	mov	r3, #54
	strb	r3, [fp, #-255]
	ldr	r3, .L295+44
	str	r3, [fp, #-176]
	ldr	r3, .L295+48
	str	r3, [fp, #-172]
	mvn	r3, #81
	strb	r3, [fp, #-249]
	mov	r0, #146
	bl	step_hash
	ldr	r3, [fp, #-196]
	cmp	r3, #0
	beq	.L203
	mov	r3, #0
	str	r3, [fp, #-212]
	ldr	r3, .L295+52
	strh	r3, [fp, #-232]	@ movhi
	sub	r3, fp, #216
	str	r3, [fp, #-116]
	mov	r0, #57
	bl	step_hash
	ldr	r3, [fp, #-196]
	cmp	r3, #0
	beq	.L204
	ldr	r3, .L295+124
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L204
	mov	r4, #1
	b	.L205
.L204:
	mov	r4, #0
.L205:
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r5, [r3]
	ldr	r3, [fp, #-264]
	ldr	r3, [r3]
	ldr	r2, .L295+124
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r5, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-212]
	rsb	r3, r3, #0
	orr	r3, r3, #125
	ldr	r2, [fp, #-264]
	ldr	r2, [r2]
	cmp	r3, r2
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-253]	@ zero_extendqisi2
	cmp	r2, r3
	blt	.L206
	ldr	r3, .L295+56
	b	.L207
.L206:
	ldr	r3, .L295+60
.L207:
	eor	r3, r3, r1
	cmp	r4, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+132
	str	r2, [r3]
	mov	r0, #75
	bl	step_hash
	mov	r3, #16
	str	r3, [fp, #-196]
	b	.L208
.L219:
	mov	r3, #1
	strh	r3, [fp, #-230]	@ movhi
	mvn	r3, #9
	strh	r3, [fp, #-228]	@ movhi
	ldr	r3, .L295+64
	str	r3, [fp, #-112]
	ldr	r3, .L295+108
	str	r3, [fp, #-108]
	mov	r0, #74
	bl	step_hash
	ldrh	r3, [fp, #-230]
	cmp	r3, #0
	beq	.L209
	mov	r3, #1
	strh	r3, [fp, #-226]	@ movhi
	mov	r3, #4
	str	r3, [fp, #-104]
	mov	r0, #68
	bl	step_hash
	mov	r3, #5
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
	b	.L210
.L215:
	ldr	r3, .L295+132
	str	r3, [fp, #-100]
	mov	r0, #65
	bl	step_hash
	ldr	r3, .L295+108
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r5, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r3, r3, #24
	lsl	r3, r3, #16
	lsr	r4, r3, #16
	ldr	r3, [fp, #-212]
	cmp	r3, #203
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldrh	r3, [fp, #-226]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L211
	mov	r2, #1
	b	.L212
.L211:
	mov	r2, #0
.L212:
	ldrh	r3, [fp, #-228]
	cmp	r2, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mul	r3, r4, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mul	r3, r5, r3
	ldr	r2, .L295+132
	str	r3, [r2]
	mov	r0, #66
	bl	step_hash
	ldr	r3, [fp, #-268]
	ldr	r2, [r3]
	ldr	r3, [fp, #-100]
	str	r2, [r3]
	mov	r0, #67
	bl	step_hash
	ldr	r3, [fp, #-180]
	ldr	r4, [r3]
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r5, r3, #24
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L213
	ldr	r3, [fp, #-104]
	cmp	r3, #0
	beq	.L213
	mov	r3, #1
	b	.L214
.L296:
	.align	2
.L295:
	.word	.LC5
	.word	-902660408
	.word	1747979580
	.word	13585
	.word	1051123269
	.word	20708
	.word	-1886480997
	.word	-568070688
	.word	-275537166
	.word	-1925330167
	.word	-1752937893
	.word	-1572354227
	.word	-873187814
	.word	23374
	.word	5419
	.word	5418
	.word	1560471471
	.word	23789
	.word	28935
	.word	31473137
	.word	-1629850510
	.word	g_236
	.word	-542542820
	.word	g_127
	.word	10024
	.word	2133521783
	.word	g_255
	.word	g_2
	.word	g_190
	.word	g_222
	.word	545392673
	.word	g_114
	.word	g_189
	.word	g_70
.L213:
	mov	r3, #0
.L214:
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	str	r3, [sp]
	ldr	r3, [fp, #-100]
	mov	r1, r5
	mov	r0, r4
	bl	func_47
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r1, r3, #24
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	sub	r3, fp, #256
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	str	r3, [sp]
	ldr	r3, .L295+132
	bl	func_47
	mov	r2, r0
	ldr	r3, [fp, #-180]
	str	r2, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
.L210:
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmn	r3, #5
	beq	.L215
	mov	r0, #69
	bl	step_hash
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	ldr	r0, [fp, #-112]
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #3
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, .L295+124
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	eor	r3, r3, r2
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, [fp, #-272]
	ldr	r2, [fp, #-212]
	sub	r0, fp, #212
	str	r2, [sp]
	mov	r2, #1
	bl	func_47
	mov	r2, r0
	ldr	r3, [fp, #-180]
	str	r2, [r3]
	b	.L216
.L209:
	mov	r3, #0
	str	r3, [fp, #-208]
	mov	r0, #71
	bl	step_hash
	ldr	r3, .L295+132
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L295+132
	str	r2, [r3]
	mov	r0, #72
	bl	step_hash
	ldr	r3, [fp, #-108]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, [fp, #-208]
	ldr	r2, .L295+132
	cmp	r3, r2
	bne	.L217
	ldr	r3, [fp, #-108]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, #1
	bl	func_37
	ldrh	r3, [fp, #-232]
	cmp	r3, #1
	bhi	.L217
	mov	r3, #1
	b	.L218
.L217:
	mov	r3, #0
.L218:
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	asr	r3, r4, r3
	and	r3, r3, #255
	rsb	r3, r3, #0
	str	r3, [fp, #-212]
	mov	r0, #73
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r2, [r3]
	sub	r3, fp, #208
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r2, r3, #255
	ldr	r3, .L295+112
	ldr	r3, [r3]
	str	r2, [r3]
.L216:
	ldr	r3, [fp, #-196]
	sub	r3, r3, #1
	str	r3, [fp, #-196]
.L208:
	ldr	r3, [fp, #-196]
	cmp	r3, #3
	bhi	.L219
	mov	r0, #76
	bl	step_hash
	ldr	r3, [fp, #-116]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldrb	r3, [fp, #-250]
	eor	r3, r3, r2
	strb	r3, [fp, #-250]
	b	.L220
.L203:
	mvn	r3, #1
	strb	r3, [fp, #-254]
	mov	r3, #0
	str	r3, [fp, #-208]
	mvn	r3, #69
	strb	r3, [fp, #-248]
	mov	r0, #78
	bl	step_hash
	ldr	r3, .L295+124
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L221
	ldr	r3, .L295+124
	ldr	r3, [r3]
	bic	r3, r3, #8
	cmp	r3, #0
	beq	.L222
.L221:
	mov	r2, #1
	b	.L223
.L222:
	mov	r2, #0
.L223:
	ldr	r3, .L295+112
	ldr	r3, [r3]
	str	r2, [r3]
	mov	r0, #96
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L224
	ldr	r3, .L295+112
	str	r3, [fp, #-164]
	mov	r0, #80
	bl	step_hash
	ldr	r3, [fp, #-164]
	ldr	r2, .L295+112
	cmp	r3, r2
	bne	.L225
	mov	r2, #55
	b	.L226
.L225:
	mov	r2, #54
.L226:
	ldrb	r3, [fp, #-254]
	and	r3, r3, r2
	strb	r3, [fp, #-254]
	b	.L227
.L224:
	mvn	r3, #85
	strb	r3, [fp, #-247]
	mov	r0, #82
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r0, #83
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	sub	r2, fp, #224
	str	r2, [r3]
	mov	r0, #95
	bl	step_hash
	mov	r3, #0
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
	b	.L228
.L239:
	mvn	r3, #0
	str	r3, [fp, #-168]
	mov	r0, #87
	bl	step_hash
	ldrb	r2, [fp, #-247]	@ zero_extendqisi2
	ldr	r3, .L295+124
	ldr	r3, [r3]
	cmp	r2, r3
	blt	.L229
	ldr	r3, .L295+68
	b	.L230
.L229:
	mov	r3, #0
.L230:
	mov	r1, #0
	mov	r0, r3
	bl	func_37
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L295+72
	cmp	r3, r2
	bhi	.L231
	ldr	r3, .L295+108
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L232
.L231:
	mov	r3, #1
	b	.L233
.L232:
	mov	r3, #0
.L233:
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r4, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L295+124
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	beq	.L234
	ldr	r3, .L295+132
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L234
	mov	r3, #1
	b	.L235
.L234:
	mov	r3, #0
.L235:
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	asr	r1, r4, r3
	ldr	r3, .L295+112
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, .L295+112
	ldr	r3, [r3]
	eor	r2, r2, r1
	str	r2, [r3]
	mov	r0, #88
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r4, [r3]
	ldrb	r2, [fp, #-254]	@ zero_extendqisi2
	mov	r3, r2
	lsl	r3, r3, #6
	sub	r3, r3, r2
	lsl	r3, r3, #2
	add	r2, r3, r2
	ldr	r3, [fp, #-264]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r2, r2, r4
	str	r2, [r3]
	mov	r0, #89
	bl	step_hash
	ldr	r3, [fp, #-264]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L292
	mov	r0, #94
	bl	step_hash
	mov	r3, #1
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-196]
	cmp	r3, #48
	beq	.L237
	mov	r0, #93
	bl	step_hash
	ldr	r3, [fp, #-168]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	b	.L288
.L292:
	nop
.L237:
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r2, fp, #272
	sub	r2, r2, #2
	strh	r3, [r2]	@ movhi
.L228:
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #17
	bgt	.L239
.L227:
	mov	r0, #145
	bl	step_hash
	ldr	r3, .L295+132
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L240
	ldr	r3, .L295+112
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L295+128
	ldr	r2, [r2]
	ldr	r2, [r2]
	ldr	r2, [r2]
	cmp	r2, #0
	moveq	r2, #1
	movne	r2, #0
	and	r2, r2, #255
	orr	r2, r3, r2
	ldrb	r3, [fp, #-254]	@ zero_extendqisi2
	orr	r2, r2, r3
	ldr	r3, .L295+108
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L241
	mov	r2, #1
	b	.L242
.L241:
	mov	r2, #0
.L242:
	ldrb	r3, [fp, #-254]	@ zero_extendqisi2
	sub	r3, r2, r3
	cmp	r3, #1
	beq	.L243
	ldr	r3, .L295+108
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L243
	ldr	r3, [fp, #-264]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L243
	mov	r3, #1
	b	.L244
.L243:
	mov	r3, #0
.L244:
	ldr	r2, .L295+76
	cmp	r3, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	asr	r3, r2, r3
	mov	r2, r3
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldrb	r3, [fp, #-254]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	beq	.L240
	mov	r3, #1
	b	.L245
.L240:
	mov	r3, #0
.L245:
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r2, r2, r3
	ldr	r3, .L295+112
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L246
	mvn	r3, #4
	str	r3, [fp, #-144]
	mov	r0, #98
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r2, [fp, #-180]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r0, #99
	bl	step_hash
	ldr	r3, .L295+124
	ldr	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	func_37
	mov	r3, r0
	eor	r3, r3, #229
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	ldrb	r3, [fp, #-254]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-208]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	and	r3, r3, r2
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsr	r3, r3, #4
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, #0
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldrsb	r3, [fp, #-248]
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	strb	r3, [fp, #-248]
	mov	r0, #117
	bl	step_hash
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	beq	.L247
	ldr	r3, .L295+80
	str	r3, [fp, #-136]
	mov	r0, #101
	bl	step_hash
	ldr	r3, [fp, #-268]
	ldr	r3, [r3]
	str	r3, [fp, #-136]
	mov	r0, #108
	bl	step_hash
	ldr	r3, .L295+116
	mvn	r2, #21
	strh	r2, [r3]	@ movhi
	b	.L248
.L253:
	mov	r3, #0
	str	r3, [fp, #-132]
	sub	r3, fp, #224
	str	r3, [fp, #-128]
	mov	r0, #105
	bl	step_hash
	ldr	r3, .L295+132
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L293
	mov	r0, #106
	bl	step_hash
	ldr	r3, [fp, #-144]
	cmp	r3, #0
	bne	.L294
	mov	r0, #107
	bl	step_hash
	ldrb	r2, [fp, #-253]	@ zero_extendqisi2
	ldr	r3, [fp, #-128]
	str	r2, [r3]
	b	.L252
.L294:
	nop
.L252:
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #4
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L295+116
	strh	r3, [r2]	@ movhi
.L248:
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	cmn	r3, #10
	bge	.L253
	b	.L254
.L247:
	mov	r0, #110
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r2, [fp, #-272]
	str	r2, [r3]
	mov	r0, #116
	bl	step_hash
	ldrsb	r3, [fp, #-252]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	beq	.L255
	mov	r0, #112
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+132
	ldr	r3, [r3]
	and	r3, r3, r2
	ldr	r2, .L295+132
	str	r3, [r2]
	mov	r0, #113
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L295+84
	strh	r3, [r2]	@ movhi
	b	.L254
.L255:
	sub	r3, fp, #208
	str	r3, [fp, #-140]
	mov	r0, #115
	bl	step_hash
	ldr	r2, [fp, #-220]
	ldr	r3, [fp, #-140]
	str	r2, [r3]
	b	.L254
.L293:
	nop
.L254:
	mov	r0, #128
	bl	step_hash
	sub	r3, fp, #256
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L256
	mvn	r3, #72
	strb	r3, [fp, #-245]
	ldr	r3, .L295+88
	str	r3, [fp, #-124]
	mvn	r3, #9
	str	r3, [fp, #-120]
	mov	r0, #123
	bl	step_hash
	ldr	r3, .L295+92
	mvn	r2, #19
	strh	r2, [r3]	@ movhi
	nop
	ldr	r3, .L295+92
	ldrsh	r3, [r3]
	cmn	r3, #6
	blt	.L290
	mov	r0, #122
	bl	step_hash
	ldrb	r3, [fp, #-245]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	b	.L288
.L290:
	mov	r0, #124
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r4, [r3]
	ldr	r3, .L295+124
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r5, r3, #24
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_uidiv
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-124]
	cmp	r3, r2
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mvn	r3, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	asr	r2, r2, r3
	ldr	r3, [fp, #-272]
	ldr	r1, .L295+92
	ldrsh	r1, [r1]
	str	r1, [sp]
	mov	r1, r5
	mov	r0, r4
	bl	func_47
	ldr	r3, .L295+124
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, [fp, #-220]
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	ldr	ip, .L295+128
	ldr	r4, [ip]
	str	r3, [sp]
	mov	r3, r2
	ldr	r2, [fp, #-124]
	bl	func_47
	mov	r3, r0
	str	r3, [r4]
	mov	r0, #125
	bl	step_hash
	ldr	r2, [fp, #-120]
	ldr	r3, [fp, #-144]
	and	r3, r3, r2
	str	r3, [fp, #-120]
	b	.L220
.L256:
	ldr	r3, .L295+96
	strh	r3, [fp, #-234]	@ movhi
	mov	r0, #127
	bl	step_hash
	ldrsh	r3, [fp, #-234]
	b	.L288
.L246:
	ldr	r3, .L295+100
	str	r3, [fp, #-160]
	mov	r3, #1
	str	r3, [fp, #-156]
	mov	r0, #142
	bl	step_hash
	ldr	r3, .L295+112
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L260
	ldr	r3, .L295+104
	str	r3, [fp, #-152]
	mov	r0, #131
	bl	step_hash
	ldr	r3, .L295+108
	ldr	r2, [r3]
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	bic	r2, r2, #1
	str	r2, [r3]
	mov	r0, #132
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, [fp, #-160]
	str	r2, [r3]
	mov	r0, #133
	bl	step_hash
	ldr	r3, [fp, #-152]
	ldr	r2, [r3]
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-152]
	str	r2, [r3]
	mov	r0, #139
	bl	step_hash
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L261
	mov	r0, #135
	bl	step_hash
	ldr	r0, [fp, #-272]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L295+104
	ldr	r2, [r3]
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	ip, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	ldr	r4, [fp, #-220]
	str	r3, [sp]
	mov	r3, ip
	bl	func_47
	mov	r3, r0
	str	r3, [r4]
	b	.L262
.L261:
	sub	r3, fp, #220
	str	r3, [fp, #-148]
	mov	r0, #137
	bl	step_hash
	ldr	r3, [fp, #-148]
	sub	r2, fp, #264
	str	r2, [r3]
	mov	r0, #138
	bl	step_hash
	ldr	r3, [fp, #-220]
	mov	r2, #0
	str	r2, [r3]
	b	.L262
.L260:
	mov	r3, #30
	strb	r3, [fp, #-246]
	mov	r0, #141
	bl	step_hash
	ldr	r3, .L295+108
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldrsb	r3, [fp, #-246]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	asr	r4, r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	cmp	r3, #0
	beq	.L263
	mov	r3, #1
	b	.L264
.L263:
	mov	r3, #0
.L264:
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	sub	r3, r2, r3
	cmp	r4, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, .L295+112
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, .L295+112
	ldr	r3, [r3]
	orr	r2, r1, r2
	str	r2, [r3]
.L262:
	mov	r0, #143
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, .L295+124
	ldr	r3, [r3]
	and	r3, r3, r2
	ldr	r2, [fp, #-156]
	and	r3, r3, r2
	str	r3, [fp, #-156]
	mov	r0, #144
	bl	step_hash
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_idiv
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L295+116
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	asr	r3, r2, r3
	str	r3, [fp, #-156]
.L220:
	mov	r0, #147
	bl	step_hash
	ldr	r3, [fp, #-220]
	ldr	r6, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r4, [r3]
	ldr	r3, [fp, #-192]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r7, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r5, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r3, r3, #24
	eor	r3, r3, #1
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	lsr	r3, r3, #2
	ldr	r1, .L295+120
	umull	r0, r3, r1, r3
	lsr	r3, r3, #3
	and	r3, r3, #255
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	and	r2, r3, #255
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	and	r3, r3, #255
	add	r3, r2, r3
	and	r3, r3, #255
	add	r3, r3, #97
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	and	r3, r3, #255
	mul	r3, r2, r3
	cmp	r5, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L295+124
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r2, r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L295+132
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	eor	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r7, r3
	cmp	r4, r3
	blt	.L266
	mvn	r1, #2
	b	.L267
.L266:
	mvn	r1, #3
.L267:
	ldrsb	r2, [fp, #-255]
	ldr	r3, .L295+128
	ldr	r3, [r3]
	ldr	r0, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	str	r3, [sp]
	mov	r3, r0
	mov	r0, r6
	bl	func_47
	mov	r2, r0
	ldr	r3, [fp, #-180]
	str	r2, [r3]
	mov	r0, #148
	bl	step_hash
	ldr	r3, [fp, #-220]
	ldr	r2, [fp, #-264]
	str	r2, [r3]
	mov	r0, #179
	bl	step_hash
	ldr	r3, [fp, #-272]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L268
	mov	r3, #0
	str	r3, [fp, #-84]
	ldr	r3, .L295+132
	str	r3, [fp, #-80]
	mov	r0, #150
	bl	step_hash
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-204]
	orr	r2, r2, r3
	ldr	r3, [fp, #-80]
	str	r2, [r3]
	b	.L202
.L268:
	mvn	r3, #0
	strb	r3, [fp, #-244]
	ldr	r3, .L297
	str	r3, [fp, #-96]
	ldr	r3, .L297+4
	str	r3, [fp, #-92]
	mov	r0, #152
	bl	step_hash
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-180]
	str	r2, [r3]
	mov	r0, #176
	bl	step_hash
	mov	r3, #0
	strb	r3, [fp, #-255]
	b	.L270
.L285:
	mvn	r3, #4
	strb	r3, [fp, #-243]
	mov	r0, #156
	bl	step_hash
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r0, [r3]
	ldrsb	r2, [fp, #-244]
	ldrsb	r3, [fp, #-243]
	cmp	r2, r3
	bge	.L271
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L272
.L271:
	mov	r2, #1
	b	.L273
.L272:
	mov	r2, #0
.L273:
	ldr	r3, .L297+12
	ldr	r3, [r3]
	cmp	r2, r3
	bge	.L274
	mvn	r1, #46
	b	.L275
.L274:
	mvn	r1, #47
.L275:
	ldr	r3, .L297+16
	ldr	r2, [r3]
	ldr	ip, [fp, #-268]
	ldrsb	r3, [fp, #-243]
	str	r3, [sp]
	mov	r3, ip
	bl	func_47
	mov	ip, r0
	ldr	r3, .L297+16
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L297+12
	ldr	r2, [r3]
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r0, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	ldr	lr, .L297+8
	ldr	r4, [lr]
	str	r3, [sp]
	mov	r3, r0
	mov	r0, ip
	bl	func_47
	mov	r3, r0
	str	r3, [r4]
	mov	r0, #173
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-204]
	b	.L276
.L280:
	ldr	r3, .L297+20
	str	r3, [fp, #-88]
	mov	r0, #166
	bl	step_hash
	ldr	r3, .L297+24
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L277
	mov	r0, #161
	bl	step_hash
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r4, [r3]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r5, r3, #24
	ldr	r3, [fp, #-88]
	and	r2, r3, #255
	ldr	r3, .L297+28
	ldrsh	r3, [r3]
	and	r3, r3, #255
	sub	r3, r2, r3
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-268]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r1, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	and	r3, r3, #255
	mvn	r3, r3
	and	r3, r3, #4
	mvn	r3, r3
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	mvn	r3, #122
	lsl	r2, r3, r2
	ldrsb	r3, [fp, #-243]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L297+32
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L297+32
	ldr	r3, [r3]
	and	r3, r3, #255
	add	r2, r2, r3
	ldr	r1, [fp, #-268]
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	str	r3, [sp]
	mov	r3, r1
	mov	r1, r5
	mov	r0, r4
	bl	func_47
	str	r0, [fp, #-96]
	mov	r0, #162
	bl	step_hash
	ldr	r3, .L297+36
	ldrsh	r3, [r3]
	b	.L288
.L277:
	mov	r0, #164
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-172]
	mov	r0, #165
	bl	step_hash
	ldr	r3, [fp, #-96]
	ldr	r2, .L297+40
	str	r2, [r3]
	mov	r0, #167
	bl	step_hash
	ldr	r3, .L297+44
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	ldrb	r2, [fp, #-249]	@ zero_extendqisi2
	cmp	r2, #7
	moveq	r2, #1
	movne	r2, #0
	and	r2, r2, #255
	cmp	r3, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mul	r2, r3, r1
	ldr	r3, [fp, #-96]
	str	r2, [r3]
	mov	r0, #172
	bl	step_hash
	mvn	r3, #22
	strb	r3, [fp, #-257]
	b	.L278
.L279:
	mov	r0, #171
	bl	step_hash
	ldr	r3, .L297+44
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, .L297+28
	ldrsh	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldrb	r3, [fp, #-257]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r3, r3, #255
	strb	r3, [fp, #-257]
.L278:
	sub	r3, fp, #256
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	cmn	r3, #10
	bne	.L279
	ldr	r3, [fp, #-204]
	add	r3, r3, #3
	str	r3, [fp, #-204]
.L276:
	ldr	r3, [fp, #-204]
	cmp	r3, #23
	ble	.L280
	mov	r0, #174
	bl	step_hash
	ldrsb	r3, [fp, #-243]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L297+12
	ldr	r2, [r2]
	lsl	r2, r2, #16
	lsr	r2, r2, #16
	mul	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, [fp, #-264]
	cmp	r1, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	lsr	r3, r3, #31
	and	r3, r3, #255
	mov	r0, r3
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r0, r3
	bge	.L281
	mov	r3, #76
	b	.L282
.L281:
	mov	r3, #75
.L282:
	sub	r1, r1, r3
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r3, [r3]
	sub	r3, r1, r3
	mov	r1, r3
	ldr	r3, .L297+48
	cmp	r1, r3
	movcs	r3, #1
	movcc	r3, #0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L297+52
	cmp	r3, r2
	bge	.L283
	mov	r3, #64
	b	.L284
.L283:
	mov	r3, #0
.L284:
	ldr	r2, .L297+28
	ldrsh	r2, [r2]
	orr	r3, r3, r2
	cmp	r3, #192
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-96]
	str	r2, [r3]
	mov	r0, #175
	bl	step_hash
	ldr	r2, [fp, #-188]
	ldr	r3, [fp, #-96]
	str	r2, [r3]
	ldrsb	r3, [fp, #-255]
	and	r3, r3, #255
	add	r3, r3, #1
	and	r3, r3, #255
	strb	r3, [fp, #-255]
.L270:
	ldrsb	r3, [fp, #-255]
	cmp	r3, #4
	beq	.L285
	mov	r0, #177
	bl	step_hash
	ldr	r3, .L297+12
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-96]
	ldr	r3, [r3]
	and	r3, r3, #255
	add	r3, r2, r3
	ldr	r2, .L297+16
	str	r3, [r2]
	mov	r0, #178
	bl	step_hash
	ldr	r3, [fp, #-272]
	ldr	r2, [r3]
	ldr	r3, [fp, #-96]
	str	r2, [r3]
.L202:
	mov	r0, #181
	bl	step_hash
	ldrb	r2, [fp, #-251]	@ zero_extendqisi2
	ldr	r3, [fp, #-184]
	str	r2, [r3]
	mov	r0, #182
	bl	step_hash
	ldr	r3, .L297+8
	ldr	r2, [r3]
	ldr	r3, .L297+8
	ldr	r3, [r3]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r0, #190
	bl	step_hash
	ldr	r3, .L297+56
	ldrsh	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, .L297
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r3, r2, r3
	ldr	r2, .L297+8
	ldr	r2, [r2]
	ldr	r1, [r2]
	ldr	r2, [fp, #-268]
	cmp	r1, r2
	movne	r2, #1
	moveq	r2, #0
	and	r2, r2, #255
	cmp	r3, r2
	beq	.L286
	mvn	r3, #47
	strb	r3, [fp, #-237]
	mov	r0, #184
	bl	step_hash
	ldrb	r3, [fp, #-237]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, #2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-184]
	str	r2, [r3]
	mov	r0, #185
	bl	step_hash
	sub	r3, fp, #272
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	and	r3, r3, #255
	lsr	r3, r3, #5
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldrh	r3, [fp, #-236]	@ movhi
	eor	r3, r3, r2
	strh	r3, [fp, #-236]	@ movhi
	b	.L287
.L286:
	mov	r0, #187
	bl	step_hash
	ldr	r2, [fp, #-220]
	ldr	r3, [fp, #-220]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r0, #188
	bl	step_hash
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	mvn	r2, r3
	ldr	r3, [fp, #-184]
	str	r2, [r3]
	mov	r0, #189
	bl	step_hash
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, .L297+60
	orr	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-184]
	str	r2, [r3]
.L287:
	mov	r0, #191
	bl	step_hash
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
.L288:
	ldr	r2, .L297+64
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L289
	bl	__stack_chk_fail
.L289:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
.L298:
	.align	2
.L297:
	.word	g_255
	.word	-490834446
	.word	g_189
	.word	g_114
	.word	g_70
	.word	-1346162319
	.word	g_190
	.word	g_127
	.word	g_2
	.word	g_222
	.word	-65526
	.word	g_324
	.word	-1940352446
	.word	-18001
	.word	g_236
	.word	-258266051
	.word	.LC5
	.size	func_42, .-func_42
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_47, %function
func_47:
	@ args = 4, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-16]
	str	r2, [fp, #-24]
	str	r3, [fp, #-28]
	mov	r3, r1
	strb	r3, [fp, #-17]
	mov	r3, #1
	str	r3, [fp, #-8]
	mov	r0, #9
	bl	step_hash
	ldr	r3, .L301
	str	r3, [fp, #-28]
	mov	r0, #10
	bl	step_hash
	ldrsb	r2, [fp, #-17]
	ldr	r3, .L301
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	func_37
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-8]
	and	r3, r3, r2
	str	r3, [fp, #-8]
	mov	r0, #11
	bl	step_hash
	ldr	r3, [fp, #-28]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L302:
	.align	2
.L301:
	.word	g_2
	.size	func_47, .-func_47
	.section	.rodata
	.align	2
.LC6:
	.ascii	"g_2\000"
	.align	2
.LC7:
	.ascii	"g_70\000"
	.align	2
.LC8:
	.ascii	"g_114\000"
	.align	2
.LC9:
	.ascii	"g_127\000"
	.align	2
.LC10:
	.ascii	"g_222\000"
	.align	2
.LC11:
	.ascii	"g_236\000"
	.align	2
.LC12:
	.ascii	"g_255\000"
	.align	2
.LC13:
	.ascii	"g_324\000"
	.align	2
.LC14:
	.ascii	"g_423\000"
	.align	2
.LC15:
	.ascii	"g_523\000"
	.align	2
.LC16:
	.ascii	"g_611\000"
	.text
	.align	2
	.global	csmith_compute_hash
	.syntax unified
	.arm
	.fpu softvfp
	.type	csmith_compute_hash, %function
csmith_compute_hash:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L304
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+8
	bl	transparent_crc
	ldr	r3, .L304+12
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+16
	bl	transparent_crc
	ldr	r3, .L304+20
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+24
	bl	transparent_crc
	ldr	r3, .L304+28
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+32
	bl	transparent_crc
	ldr	r3, .L304+36
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+40
	bl	transparent_crc
	ldr	r3, .L304+44
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+48
	bl	transparent_crc
	ldr	r3, .L304+52
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+56
	bl	transparent_crc
	ldr	r3, .L304+60
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+64
	bl	transparent_crc
	ldr	r3, .L304+68
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+72
	bl	transparent_crc
	ldr	r3, .L304+76
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+80
	bl	transparent_crc
	ldr	r3, .L304+84
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L304+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L304+88
	bl	transparent_crc
	nop
	pop	{fp, pc}
.L305:
	.align	2
.L304:
	.word	g_2
	.word	print_hash_value
	.word	.LC6
	.word	g_70
	.word	.LC7
	.word	g_114
	.word	.LC8
	.word	g_127
	.word	.LC9
	.word	g_222
	.word	.LC10
	.word	g_236
	.word	.LC11
	.word	g_255
	.word	.LC12
	.word	g_324
	.word	.LC13
	.word	g_423
	.word	.LC14
	.word	g_523
	.word	.LC15
	.word	g_611
	.word	.LC16
	.size	csmith_compute_hash, .-csmith_compute_hash
	.section	.rodata
	.align	2
.LC17:
	.ascii	"before stmt(%d): checksum = %X\012\000"
	.text
	.align	2
	.global	step_hash
	.syntax unified
	.arm
	.fpu softvfp
	.type	step_hash, %function
step_hash:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-8]
	bl	csmith_compute_hash
	ldr	r3, .L309
	ldr	r3, [r3]
	mvn	r3, r3
	mov	r2, r3
	ldr	r1, [fp, #-16]
	ldr	r0, .L309+4
	bl	printf
	ldr	r3, .L309
	mvn	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L307
.L308:
	ldr	r2, .L309+8
	ldr	r3, [fp, #-8]
	mov	r1, #0
	str	r1, [r2, r3, lsl #2]
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L307:
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	ble	.L308
	bl	crc32_gentab
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L310:
	.align	2
.L309:
	.word	crc32_context
	.word	.LC17
	.word	crc32_tab
	.size	step_hash, .-step_hash
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, #0
	str	r3, [fp, #-8]
	bl	platform_main_begin
	bl	crc32_gentab
	bl	func_1
	bl	csmith_compute_hash
	ldr	r3, .L313
	ldr	r3, [r3]
	mvn	r3, r3
	ldr	r1, [fp, #-8]
	mov	r0, r3
	bl	platform_main_end
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L314:
	.align	2
.L313:
	.word	crc32_context
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
