	.file	"16904.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	-32862548
	.align 4
	.type	g_64, @object
	.size	g_64, 4
g_64:
	.long	-2
	.align 2
	.type	g_73, @object
	.size	g_73, 2
g_73:
	.value	-27767
	.align 4
	.type	g_145, @object
	.size	g_145, 4
g_145:
	.long	132712502
	.align 2
	.type	g_173, @object
	.size	g_173, 2
g_173:
	.value	-10
	.align 2
	.type	g_174, @object
	.size	g_174, 2
g_174:
	.value	156
	.align 16
	.type	g_178, @object
	.size	g_178, 20
g_178:
	.string	"\272"
	.ascii	"\376\377\377"
	.string	"\272"
	.ascii	"\376\377\377"
	.string	"\272"
	.ascii	"\376\377\377"
	.string	"\272"
	.ascii	"\376\377\377"
	.local	g_215
	.comm	g_215,240,32
	.section	.data.rel.local,"aw"
	.align 8
	.type	g_214, @object
	.size	g_214, 8
g_214:
	.quad	g_215+80
	.data
	.type	g_319, @object
	.size	g_319, 1
g_319:
	.byte	2
	.align 4
	.type	g_363, @object
	.size	g_363, 4
g_363:
	.long	-1229785581
	.align 4
	.type	g_578, @object
	.size	g_578, 4
g_578:
	.long	627636416
	.align 2
	.type	g_627, @object
	.size	g_627, 2
g_627:
	.value	-20202
	.align 2
	.type	g_670, @object
	.size	g_670, 2
g_670:
	.value	-1
	.local	g_677
	.comm	g_677,8,8
	.align 32
	.type	g_681, @object
	.size	g_681, 160
g_681:
	.long	-1088386345
	.long	409936259
	.long	-606404664
	.long	409936259
	.long	-1088386345
	.long	-1
	.long	-1088386345
	.long	409936259
	.long	-1088386345
	.long	409936259
	.long	-606404664
	.long	409936259
	.long	-1088386345
	.long	-1
	.long	-1088386345
	.long	409936259
	.long	-1088386345
	.long	409936259
	.long	-606404664
	.long	409936259
	.long	-1088386345
	.long	-1
	.long	-1088386345
	.long	409936259
	.long	-1088386345
	.long	409936259
	.long	-606404664
	.long	409936259
	.long	-1088386345
	.long	-1
	.long	-1088386345
	.long	409936259
	.long	-1088386345
	.long	409936259
	.long	-606404664
	.long	409936259
	.long	-1088386345
	.long	-1
	.long	-1088386345
	.long	409936259
	.align 4
	.type	g_760, @object
	.size	g_760, 4
g_760:
	.long	-1550637324
	.local	g_876
	.comm	g_876,1,1
	.align 4
	.type	g_891, @object
	.size	g_891, 4
g_891:
	.long	1549463472
	.section	.data.rel.local
	.align 8
	.type	g_895, @object
	.size	g_895, 8
g_895:
	.quad	g_2
	.data
	.align 4
	.type	g_1001, @object
	.size	g_1001, 4
g_1001:
	.long	1
	.align 2
	.type	g_1077, @object
	.size	g_1077, 2
g_1077:
	.value	-10
	.type	g_1156, @object
	.size	g_1156, 1
g_1156:
	.byte	60
	.type	g_1229, @object
	.size	g_1229, 1
g_1229:
	.byte	18
	.align 32
	.type	g_1296, @object
	.size	g_1296, 320
g_1296:
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.long	1792462605
	.long	-502908908
	.long	9
	.long	686201932
	.long	-2108940845
	.long	0
	.long	0
	.long	-1
	.long	0
	.long	0
	.align 4
	.type	g_1380, @object
	.size	g_1380, 4
g_1380:
	.long	6
	.align 4
	.type	g_1491, @object
	.size	g_1491, 4
g_1491:
	.long	293885247
	.align 4
	.type	g_1519, @object
	.size	g_1519, 4
g_1519:
	.long	8
	.local	g_1520
	.comm	g_1520,24,16
	.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	BYTE PTR -27[rbp], -1
	mov	DWORD PTR -24[rbp], -1218367542
	mov	DWORD PTR -20[rbp], -1495703790
	mov	WORD PTR -26[rbp], -21588
	mov	edi, 911
	call	step_hash
	mov	DWORD PTR g_2[rip], 0
	jmp	.L18
.L19:
	lea	rax, g_578[rip]
	mov	QWORD PTR -8[rbp], rax
	mov	DWORD PTR -16[rbp], -400280513
	mov	DWORD PTR -12[rbp], 7
	mov	eax, DWORD PTR g_2[rip]
	sub	eax, 4
	mov	DWORD PTR g_2[rip], eax
.L18:
	mov	eax, DWORD PTR g_2[rip]
	cmp	eax, -27
	jge	.L19
	mov	edi, 912
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	ecx, DWORD PTR [rax]
	mov	eax, DWORD PTR -24[rbp]
	movzx	eax, ax
	imul	edx, eax, 65527
	mov	rax, QWORD PTR g_895[rip]
	and	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 917
	call	step_hash
	mov	DWORD PTR g_760[rip], 7
	jmp	.L20
.L21:
	mov	edi, 916
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	QWORD PTR [rax], 0
	mov	eax, DWORD PTR g_760[rip]
	sub	eax, 1
	mov	DWORD PTR g_760[rip], eax
.L20:
	mov	eax, DWORD PTR g_760[rip]
	cmp	eax, -27
	jl	.L21
	mov	edi, 918
	call	step_hash
	mov	eax, DWORD PTR g_1380[rip]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	func_1, .-func_1
	.type	func_5, @function
func_5:
.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, 592
	mov	DWORD PTR -584[rbp], esi
	mov	eax, edx
	mov	DWORD PTR -592[rbp], ecx
	mov	edx, edi
	mov	BYTE PTR -580[rbp], dl
	mov	WORD PTR -588[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -560[rbp], -1825237188
	mov	QWORD PTR -536[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -528[rbp], rax
	mov	DWORD PTR -556[rbp], -5
	mov	DWORD PTR -240[rbp], -1
	mov	DWORD PTR -236[rbp], -69357266
	mov	DWORD PTR -232[rbp], -1
	mov	DWORD PTR -228[rbp], -69357266
	mov	DWORD PTR -224[rbp], -1
	mov	DWORD PTR -220[rbp], -69357266
	mov	DWORD PTR -216[rbp], -1
	mov	DWORD PTR -212[rbp], -1
	mov	DWORD PTR -208[rbp], -69357266
	mov	DWORD PTR -204[rbp], -1
	mov	DWORD PTR -200[rbp], -69357266
	mov	DWORD PTR -196[rbp], -1
	mov	DWORD PTR -192[rbp], -69357266
	mov	DWORD PTR -188[rbp], -1
	mov	DWORD PTR -184[rbp], -1
	mov	DWORD PTR -180[rbp], -69357266
	mov	DWORD PTR -176[rbp], -1
	mov	DWORD PTR -172[rbp], -69357266
	mov	DWORD PTR -168[rbp], -1
	mov	DWORD PTR -164[rbp], -69357266
	mov	DWORD PTR -160[rbp], -1
	mov	DWORD PTR -156[rbp], -1
	mov	DWORD PTR -152[rbp], -69357266
	mov	DWORD PTR -148[rbp], -1
	mov	DWORD PTR -144[rbp], -69357266
	mov	DWORD PTR -140[rbp], -1
	mov	DWORD PTR -136[rbp], -69357266
	mov	DWORD PTR -132[rbp], -1
	mov	DWORD PTR -128[rbp], -1
	mov	DWORD PTR -124[rbp], -69357266
	mov	DWORD PTR -120[rbp], -1
	mov	DWORD PTR -116[rbp], -69357266
	mov	DWORD PTR -112[rbp], -1
	mov	DWORD PTR -108[rbp], -69357266
	mov	DWORD PTR -104[rbp], -1
	mov	DWORD PTR -100[rbp], -1
	mov	DWORD PTR -96[rbp], -69357266
	mov	DWORD PTR -92[rbp], -1
	mov	DWORD PTR -88[rbp], -69357266
	mov	DWORD PTR -84[rbp], -1
	mov	DWORD PTR -80[rbp], -69357266
	mov	DWORD PTR -76[rbp], -1
	mov	DWORD PTR -72[rbp], -1
	mov	DWORD PTR -68[rbp], -69357266
	mov	DWORD PTR -64[rbp], -1
	mov	DWORD PTR -60[rbp], -69357266
	mov	DWORD PTR -56[rbp], -1
	mov	DWORD PTR -52[rbp], -69357266
	mov	DWORD PTR -48[rbp], -1
	mov	DWORD PTR -44[rbp], -1
	mov	DWORD PTR -40[rbp], -69357266
	mov	DWORD PTR -36[rbp], -1
	mov	DWORD PTR -32[rbp], -69357266
	mov	DWORD PTR -28[rbp], -1
	mov	DWORD PTR -24[rbp], -69357266
	mov	DWORD PTR -20[rbp], -1
	mov	DWORD PTR -552[rbp], -7
	mov	BYTE PTR -574[rbp], -12
	mov	BYTE PTR -573[rbp], -34
	mov	BYTE PTR -572[rbp], -5
	mov	BYTE PTR -571[rbp], 0
	mov	DWORD PTR -548[rbp], 0
	mov	DWORD PTR -568[rbp], 0
	jmp	.L24
.L27:
	mov	DWORD PTR -564[rbp], 0
	jmp	.L25
.L26:
	mov	eax, DWORD PTR -564[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -568[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	add	rax, rcx
	mov	DWORD PTR -464[rbp+rax*4], -3
	add	DWORD PTR -564[rbp], 1
.L25:
	cmp	DWORD PTR -564[rbp], 4
	jle	.L26
	add	DWORD PTR -568[rbp], 1
.L24:
	cmp	DWORD PTR -568[rbp], 4
	jle	.L27
	mov	DWORD PTR -568[rbp], 0
	jmp	.L28
.L31:
	mov	DWORD PTR -564[rbp], 0
	jmp	.L29
.L30:
	mov	eax, DWORD PTR -564[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -568[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	add	rax, rbp
	add	rax, rcx
	sub	rax, 502
	mov	BYTE PTR [rax], 15
	add	DWORD PTR -564[rbp], 1
.L29:
	cmp	DWORD PTR -564[rbp], 5
	jle	.L30
	add	DWORD PTR -568[rbp], 1
.L28:
	cmp	DWORD PTR -568[rbp], 0
	jle	.L31
	mov	edi, 704
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	mov	edi, eax
	call	func_11
	mov	DWORD PTR -560[rbp], eax
	mov	edi, 859
	call	step_hash
	mov	WORD PTR g_670[rip], 0
	jmp	.L32
.L33:
	mov	WORD PTR -496[rbp], 16953
	mov	WORD PTR -494[rbp], 16953
	mov	WORD PTR -492[rbp], 1
	mov	WORD PTR -490[rbp], 3
	mov	WORD PTR -488[rbp], -8811
	mov	WORD PTR -486[rbp], 3
	mov	WORD PTR -484[rbp], 1
	mov	WORD PTR -482[rbp], 16953
	mov	WORD PTR -480[rbp], 16953
	mov	WORD PTR -478[rbp], 16953
	mov	WORD PTR -476[rbp], 1
	mov	WORD PTR -474[rbp], 3
	mov	WORD PTR -472[rbp], -8811
	mov	WORD PTR -470[rbp], 3
	mov	WORD PTR -468[rbp], 1
	mov	WORD PTR -466[rbp], 16953
	lea	rax, g_214[rip]
	mov	QWORD PTR -520[rbp], rax
	mov	DWORD PTR -544[rbp], -1931085443
	lea	rax, g_64[rip]
	mov	QWORD PTR -512[rbp], rax
	mov	DWORD PTR -352[rbp], -88571791
	mov	DWORD PTR -348[rbp], 1
	mov	DWORD PTR -344[rbp], 1849602287
	mov	DWORD PTR -340[rbp], 1849602287
	mov	DWORD PTR -336[rbp], 1
	mov	DWORD PTR -332[rbp], -88571791
	mov	DWORD PTR -328[rbp], 1
	mov	DWORD PTR -324[rbp], 1849602287
	mov	DWORD PTR -320[rbp], 1849602287
	mov	DWORD PTR -316[rbp], 1
	mov	DWORD PTR -312[rbp], -88571791
	mov	DWORD PTR -308[rbp], 1
	mov	DWORD PTR -304[rbp], 1849602287
	mov	DWORD PTR -300[rbp], 1849602287
	mov	DWORD PTR -296[rbp], 1
	mov	DWORD PTR -292[rbp], -88571791
	mov	DWORD PTR -288[rbp], 1
	mov	DWORD PTR -284[rbp], 1849602287
	mov	DWORD PTR -280[rbp], 1849602287
	mov	DWORD PTR -276[rbp], 1
	mov	DWORD PTR -272[rbp], -88571791
	mov	DWORD PTR -268[rbp], 1
	mov	DWORD PTR -264[rbp], 1849602287
	mov	DWORD PTR -260[rbp], 1849602287
	mov	DWORD PTR -256[rbp], 1
	mov	WORD PTR -570[rbp], 129
	mov	DWORD PTR -540[rbp], 0
	movzx	eax, WORD PTR g_670[rip]
	sub	eax, 4
	mov	WORD PTR g_670[rip], ax
.L32:
	movzx	eax, WORD PTR g_670[rip]
	cmp	ax, -17
	jge	.L33
	mov	edi, 860
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	eax, DWORD PTR [rax]
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L35
	call	__stack_chk_fail@PLT
.L35:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	func_5, .-func_5
	.type	func_11, @function
func_11:
.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, 88
	.cfi_offset 13, -24
	.cfi_offset 12, -32
	.cfi_offset 3, -40
	mov	DWORD PTR -100[rbp], edi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	lea	rax, g_2[rip]
	mov	QWORD PTR -80[rbp], rax
	mov	DWORD PTR -84[rbp], 6
	mov	QWORD PTR -72[rbp], 0
	lea	rax, -80[rbp]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, g_895[rip]
	mov	QWORD PTR -56[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -48[rbp], rax
	mov	edi, 701
	call	step_hash
	mov	rbx, QWORD PTR -80[rbp]
	mov	rax, QWORD PTR -80[rbp]
	test	rax, rax
	sete	al
	movzx	r13d, al
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	r12d, al
	mov	eax, DWORD PTR -100[rbp]
	movsx	edx, ax
	mov	ecx, DWORD PTR g_2[rip]
	mov	eax, DWORD PTR -84[rbp]
	movsx	eax, al
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	lea	rcx, g_2[rip]
	mov	edx, r12d
	mov	rsi, rax
	mov	edi, 0
	call	func_17
	cmp	r13d, eax
	setbe	al
	movzx	eax, al
	mov	rsi, rbx
	mov	edi, eax
	call	func_13
	mov	rdx, QWORD PTR -64[rbp]
	mov	QWORD PTR [rdx], rax
	mov	edi, 702
	call	step_hash
	mov	rax, QWORD PTR -48[rbp]
	mov	rdx, QWORD PTR -56[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 703
	call	step_hash
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rbx, QWORD PTR -40[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L38
	call	__stack_chk_fail@PLT
.L38:
	add	rsp, 88
	pop	rbx
	pop	r12
	pop	r13
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	func_11, .-func_11
	.type	func_13, @function
func_13:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 584
	.cfi_offset 3, -24
	mov	DWORD PTR -580[rbp], edi
	mov	QWORD PTR -592[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	BYTE PTR -572[rbp], 3
	mov	DWORD PTR -544[rbp], 0
	mov	BYTE PTR -573[rbp], 63
	lea	rax, g_214[rip]
	mov	QWORD PTR -240[rbp], rax
	lea	rax, g_677[rip]
	mov	QWORD PTR -232[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -224[rbp], rax
	lea	rax, g_677[rip]
	mov	QWORD PTR -216[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -208[rbp], rax
	lea	rax, g_677[rip]
	mov	QWORD PTR -200[rbp], rax
	mov	edi, 699
	call	step_hash
	cmp	BYTE PTR -572[rbp], 0
	je	.L40
	lea	rax, g_64[rip]
	mov	QWORD PTR -448[rbp], rax
	mov	DWORD PTR -560[rbp], 0
	jmp	.L41
.L42:
	mov	eax, DWORD PTR -560[rbp]
	cdqe
	mov	DWORD PTR -192[rbp+rax*4], 0
	add	DWORD PTR -560[rbp], 1
.L41:
	cmp	DWORD PTR -560[rbp], 4
	jle	.L42
	mov	edi, 654
	call	step_hash
	cmp	BYTE PTR -572[rbp], 0
	je	.L43
	mov	edi, 649
	call	step_hash
	mov	eax, DWORD PTR -580[rbp]
	movsx	edx, ax
	mov	ecx, DWORD PTR -580[rbp]
	mov	eax, DWORD PTR -580[rbp]
	mov	rbx, QWORD PTR g_214[rip]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	jmp	.L44
.L43:
	mov	DWORD PTR -484[rbp], -1
	lea	rax, g_677[rip]
	mov	QWORD PTR -440[rbp], rax
	mov	QWORD PTR -432[rbp], 0
	lea	rax, g_578[rip]
	mov	QWORD PTR -424[rbp], rax
	mov	edi, 651
	call	step_hash
	mov	rax, QWORD PTR -592[rbp]
	mov	QWORD PTR -432[rbp], rax
	mov	edi, 652
	call	step_hash
	sub	DWORD PTR -544[rbp], 1
	mov	edi, 653
	call	step_hash
	mov	rax, QWORD PTR -424[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -592[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -424[rbp]
	mov	DWORD PTR [rax], edx
.L44:
	mov	edi, 655
	call	step_hash
	mov	edx, DWORD PTR -180[rbp]
	mov	rax, QWORD PTR -448[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L45
.L40:
	mov	WORD PTR -568[rbp], -5
	lea	rax, g_64[rip]
	mov	QWORD PTR -472[rbp], rax
	mov	DWORD PTR -564[rbp], 0
	mov	BYTE PTR -571[rbp], -42
	mov	DWORD PTR -540[rbp], 1
	mov	DWORD PTR -536[rbp], -873250214
	mov	WORD PTR -570[rbp], -27923
	mov	DWORD PTR -556[rbp], 0
	jmp	.L46
.L47:
	mov	eax, DWORD PTR -556[rbp]
	cdqe
	mov	DWORD PTR -416[rbp+rax*4], 0
	add	DWORD PTR -556[rbp], 1
.L46:
	cmp	DWORD PTR -556[rbp], 3
	jle	.L47
	mov	DWORD PTR -556[rbp], 0
	jmp	.L48
.L49:
	mov	eax, DWORD PTR -556[rbp]
	cdqe
	mov	DWORD PTR -352[rbp+rax*4], 2135981913
	add	DWORD PTR -556[rbp], 1
.L48:
	cmp	DWORD PTR -556[rbp], 6
	jle	.L49
	mov	edi, 657
	call	step_hash
	cmp	DWORD PTR -544[rbp], 0
	jne	.L50
	mov	rax, QWORD PTR -592[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L50
	cmp	BYTE PTR -573[rbp], 0
	je	.L51
.L50:
	mov	eax, 1
	jmp	.L52
.L51:
	mov	eax, 0
.L52:
	mov	WORD PTR -568[rbp], ax
	mov	edi, 658
	call	step_hash
	mov	eax, DWORD PTR -580[rbp]
	movsx	edx, ax
	movzx	ecx, WORD PTR -568[rbp]
	mov	esi, DWORD PTR g_681[rip+108]
	movzx	eax, WORD PTR g_627[rip]
	movzx	eax, ax
	and	eax, DWORD PTR -580[rbp]
	cmp	esi, eax
	sete	al
	movzx	eax, al
	mov	rbx, QWORD PTR g_214[rip]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	mov	edi, 698
	call	step_hash
	movzx	eax, WORD PTR -568[rbp]
	mov	ecx, DWORD PTR -580[rbp]
	cdq
	idiv	ecx
	mov	eax, edx
	cmp	DWORD PTR -580[rbp], eax
	jne	.L53
	lea	rax, g_578[rip]
	mov	QWORD PTR -192[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -184[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -176[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -168[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -160[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -152[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -144[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -136[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -128[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -120[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -112[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -104[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -96[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -88[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -80[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -72[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -56[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -48[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -32[rbp], rax
	mov	edi, 660
	call	step_hash
	mov	eax, DWORD PTR g_681[rip+8]
	movzx	ecx, al
	mov	edx, DWORD PTR -580[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, ecx
	mov	rdi, rax
	call	func_43
	test	ax, ax
	jne	.L54
	cmp	DWORD PTR -580[rbp], 0
	je	.L55
.L54:
	mov	eax, 1
	jmp	.L56
.L55:
	mov	eax, 0
.L56:
	mov	edx, eax
	mov	rax, QWORD PTR -592[rbp]
	mov	eax, DWORD PTR [rax]
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	mov	edx, eax
	mov	eax, DWORD PTR -564[rbp]
	and	eax, edx
	mov	DWORD PTR -564[rbp], eax
	jmp	.L45
.L53:
	mov	DWORD PTR -384[rbp], 184814340
	mov	BYTE PTR -380[rbp], 4
	mov	DWORD PTR -379[rbp], 184814340
	mov	BYTE PTR -375[rbp], 4
	mov	DWORD PTR -374[rbp], 184814340
	mov	BYTE PTR -370[rbp], 4
	mov	DWORD PTR -369[rbp], 184814340
	mov	BYTE PTR -365[rbp], 4
	mov	DWORD PTR -364[rbp], 184814340
	mov	BYTE PTR -360[rbp], 4
	mov	DWORD PTR -288[rbp], -1271664360
	mov	DWORD PTR -284[rbp], -1271664360
	mov	DWORD PTR -280[rbp], -1271664360
	mov	DWORD PTR -276[rbp], -1271664360
	mov	DWORD PTR -272[rbp], -1271664360
	mov	DWORD PTR -268[rbp], -1271664360
	mov	DWORD PTR -264[rbp], -1271664360
	mov	DWORD PTR -260[rbp], -1271664360
	mov	DWORD PTR -256[rbp], -1271664360
	mov	DWORD PTR -252[rbp], -1271664360
	mov	DWORD PTR -532[rbp], -1
	mov	DWORD PTR -528[rbp], 4
	mov	DWORD PTR -524[rbp], 1206239069
	mov	DWORD PTR -520[rbp], -1
	mov	DWORD PTR -516[rbp], 2
	mov	DWORD PTR -552[rbp], 0
	jmp	.L58
.L59:
	mov	eax, DWORD PTR -552[rbp]
	cdqe
	mov	DWORD PTR -400[rbp+rax*4], 954336462
	add	DWORD PTR -552[rbp], 1
.L58:
	cmp	DWORD PTR -552[rbp], 3
	jle	.L59
	mov	edi, 694
	call	step_hash
	mov	DWORD PTR g_760[rip], 17
	jmp	.L60
.L80:
	mov	DWORD PTR -548[rbp], 0
	jmp	.L61
.L62:
	mov	eax, DWORD PTR -548[rbp]
	cdqe
	mov	DWORD PTR -320[rbp+rax*4], -447137710
	add	DWORD PTR -548[rbp], 1
.L61:
	cmp	DWORD PTR -548[rbp], 7
	jle	.L62
	mov	edi, 672
	call	step_hash
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -592[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jle	.L63
	lea	rax, g_2[rip]
	mov	QWORD PTR -456[rbp], rax
	mov	edi, 666
	call	step_hash
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], -1813060059
	mov	edi, 667
	call	step_hash
	mov	rax, QWORD PTR -456[rbp]
	jmp	.L84
.L63:
	mov	edi, 669
	call	step_hash
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -367[rbp]
	movsx	eax, al
	movzx	ecx, BYTE PTR g_876[rip]
	movsx	ecx, cl
	sub	eax, ecx
	and	edx, eax
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 670
	call	step_hash
	mov	BYTE PTR g_319[rip], 0
	jmp	.L65
.L68:
	mov	BYTE PTR g_876[rip], 0
	jmp	.L66
.L67:
	movzx	eax, BYTE PTR g_319[rip]
	movsx	eax, al
	movzx	edx, BYTE PTR g_876[rip]
	movzx	edx, dl
	movsx	rdx, edx
	cdqe
	sal	rax, 3
	add	rax, rdx
	lea	rdx, 0[0+rax*4]
	lea	rax, g_681[rip]
	mov	DWORD PTR [rdx+rax], -1397322117
	movzx	eax, BYTE PTR g_876[rip]
	add	eax, 1
	mov	BYTE PTR g_876[rip], al
.L66:
	movzx	eax, BYTE PTR g_876[rip]
	cmp	al, 7
	jbe	.L67
	movzx	eax, BYTE PTR g_319[rip]
	add	eax, 1
	mov	BYTE PTR g_319[rip], al
.L65:
	movzx	eax, BYTE PTR g_319[rip]
	cmp	al, 4
	jle	.L68
	mov	edi, 671
	call	step_hash
	mov	edx, DWORD PTR -264[rbp]
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 673
	call	step_hash
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], -7
	mov	edi, 693
	call	step_hash
	mov	BYTE PTR -573[rbp], 0
	jmp	.L69
.L79:
	lea	rax, -564[rbp]
	mov	QWORD PTR -480[rbp], rax
	lea	rax, -480[rbp]
	mov	QWORD PTR -464[rbp], rax
	mov	DWORD PTR -512[rbp], 1619220719
	mov	DWORD PTR -508[rbp], 9
	mov	DWORD PTR -504[rbp], -8
	mov	DWORD PTR -500[rbp], -224942255
	mov	DWORD PTR -496[rbp], 0
	mov	DWORD PTR -492[rbp], 884626981
	mov	DWORD PTR -488[rbp], 2144993201
	mov	edi, 677
	call	step_hash
	cmp	DWORD PTR -580[rbp], 0
	setne	al
	movzx	edx, al
	mov	rax, QWORD PTR -480[rbp]
	mov	eax, DWORD PTR [rax]
	or	edx, eax
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 682
	call	step_hash
	mov	BYTE PTR g_876[rip], 0
	jmp	.L70
.L71:
	mov	edi, 681
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -592[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	func_47
	movsx	edx, ax
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, BYTE PTR g_876[rip]
	add	eax, 1
	mov	BYTE PTR g_876[rip], al
.L70:
	movzx	eax, BYTE PTR g_876[rip]
	test	al, al
	je	.L71
	mov	edi, 692
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L72
	mov	WORD PTR -566[rbp], -4
	mov	edi, 684
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L86
	mov	edi, 685
	call	step_hash
	mov	eax, DWORD PTR -580[rbp]
	or	eax, 1
	mov	edx, eax
	mov	eax, DWORD PTR g_145[rip]
	cmp	edx, eax
	seta	al
	movzx	eax, al
	mov	WORD PTR -566[rbp], ax
	mov	edi, 686
	call	step_hash
	movzx	eax, BYTE PTR g_1156[rip]
	cbw
	shr	ax, 11
	movzx	edx, ax
	movsx	di, BYTE PTR -571[rbp]
	mov	rax, QWORD PTR -480[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L75
	movzx	eax, WORD PTR g_73[rip]
	test	ax, ax
	je	.L75
	mov	eax, 1
	jmp	.L76
.L75:
	mov	eax, 0
.L76:
	cmp	eax, 677621058
	setne	al
	movzx	ecx, al
	mov	rax, QWORD PTR -480[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	ecx, eax
	setge	al
	movzx	esi, al
	movzx	eax, WORD PTR g_174[rip]
	movzx	eax, ax
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	add	eax, edi
	movzx	eax, ax
	imul	edx, eax
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L77
.L72:
	mov	DWORD PTR -192[rbp], -1
	mov	DWORD PTR -188[rbp], -1
	mov	DWORD PTR -184[rbp], -1
	mov	DWORD PTR -180[rbp], -1
	mov	DWORD PTR -176[rbp], -1
	mov	DWORD PTR -172[rbp], -1
	mov	DWORD PTR -168[rbp], -1
	mov	DWORD PTR -164[rbp], -1
	mov	DWORD PTR -160[rbp], -1
	mov	DWORD PTR -156[rbp], -1
	mov	DWORD PTR -152[rbp], -1
	mov	DWORD PTR -148[rbp], -1
	mov	DWORD PTR -144[rbp], -1
	mov	DWORD PTR -140[rbp], -1
	mov	DWORD PTR -136[rbp], -1
	mov	DWORD PTR -132[rbp], -1
	mov	DWORD PTR -128[rbp], -1
	mov	DWORD PTR -124[rbp], -1
	mov	edi, 688
	call	step_hash
	mov	rax, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -464[rbp]
	mov	rax, QWORD PTR [rax]
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 689
	call	step_hash
	movzx	eax, WORD PTR -570[rbp]
	sub	eax, 1
	mov	WORD PTR -570[rbp], ax
	mov	edi, 690
	call	step_hash
	mov	rax, QWORD PTR -480[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -480[rbp]
	xor	edx, 1
	mov	DWORD PTR [rax], edx
	mov	edi, 691
	call	step_hash
	mov	rax, QWORD PTR -480[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -592[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -480[rbp]
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
.L77:
	movzx	eax, BYTE PTR -573[rbp]
	sub	eax, 1
	mov	BYTE PTR -573[rbp], al
.L69:
	cmp	BYTE PTR -573[rbp], 0
	jns	.L79
	jmp	.L78
.L86:
	nop
.L78:
	mov	eax, DWORD PTR g_760[rip]
	sub	eax, 1
	mov	DWORD PTR g_760[rip], eax
.L60:
	mov	eax, DWORD PTR g_760[rip]
	cmp	eax, -7
	jne	.L80
	mov	edi, 695
	call	step_hash
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], 65
	mov	edi, 696
	call	step_hash
	sub	DWORD PTR -516[rbp], 1
	mov	edi, 697
	call	step_hash
	movzx	eax, WORD PTR g_627[rip]
	cwde
	mov	edx, -8
	sub	edx, eax
	mov	eax, DWORD PTR g_760[rip]
	test	eax, eax
	jne	.L81
	mov	rax, QWORD PTR -472[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L82
.L81:
	mov	eax, 1
	jmp	.L83
.L82:
	mov	eax, 0
.L83:
	cmp	eax, edx
	setge	al
	not	eax
	movzx	eax, al
	lea	edx, -3[rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], edx
.L45:
	mov	edi, 700
	call	step_hash
	mov	rax, QWORD PTR -592[rbp]
.L84:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L85
	call	__stack_chk_fail@PLT
.L85:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	func_13, .-func_13
	.type	func_17, @function
func_17:
.LFB10:
	.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, 56
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	mov	DWORD PTR -68[rbp], edi
	mov	QWORD PTR -80[rbp], rsi
	mov	eax, edx
	mov	QWORD PTR -88[rbp], rcx
	mov	BYTE PTR -72[rbp], al
	mov	WORD PTR -58[rbp], 0
	mov	DWORD PTR -56[rbp], 19140501
	mov	DWORD PTR -52[rbp], 0
	mov	edi, 644
	call	step_hash
	mov	r12d, DWORD PTR g_681[rip+92]
	mov	eax, DWORD PTR -56[rbp]
	movzx	ebx, al
	mov	eax, DWORD PTR -56[rbp]
	movsx	r14d, ax
	movzx	r13d, WORD PTR -58[rbp]
	mov	rax, QWORD PTR g_895[rip]
	mov	r15d, DWORD PTR [rax]
	mov	edi, 1
	call	func_59
	mov	eax, DWORD PTR g_2[rip]
	neg	eax
	cwde
	sal	eax, 3
	movsx	ecx, al
	movzx	eax, BYTE PTR -72[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	edi, eax
	call	func_50
	mov	esi, r15d
	mov	rdi, rax
	call	func_47
	cmp	WORD PTR -58[rbp], 1
	setbe	al
	movzx	eax, al
	mov	edx, r14d
	mov	esi, r13d
	mov	edi, eax
	call	func_22
	mov	edx, r12d
	mov	esi, ebx
	mov	rdi, rax
	call	func_43
	mov	eax, 0
	or	DWORD PTR -52[rbp], eax
	mov	edi, 645
	call	step_hash
	mov	eax, DWORD PTR -56[rbp]
	add	rsp, 56
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	r15
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	func_17, .-func_17
	.type	func_22, @function
func_22:
.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, 48
	mov	DWORD PTR -36[rbp], edi
	mov	DWORD PTR -40[rbp], esi
	mov	eax, edx
	mov	WORD PTR -44[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, g_2[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	edi, 11
	call	step_hash
	mov	WORD PTR -44[rbp], -27
	cmp	WORD PTR -44[rbp], 1
	jg	.L90
	mov	edi, 10
	call	step_hash
	mov	rax, QWORD PTR -24[rbp]
	jmp	.L91
.L90:
	mov	edi, 17
	call	step_hash
	mov	DWORD PTR -40[rbp], 0
	jmp	.L92
.L93:
	mov	DWORD PTR -28[rbp], -1667394557
	lea	rax, -28[rbp]
	mov	QWORD PTR -16[rbp], rax
	mov	edi, 15
	call	step_hash
	mov	edx, DWORD PTR -28[rbp]
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 16
	call	step_hash
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR g_2[rip]
	or	edx, eax
	mov	rax, QWORD PTR -16[rbp]
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -40[rbp], 1
.L92:
	cmp	DWORD PTR -40[rbp], 19
	jne	.L93
	mov	edi, 18
	call	step_hash
	lea	rax, g_2[rip]
.L91:
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L94
	call	__stack_chk_fail@PLT
.L94:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	func_22, .-func_22
	.type	func_43, @function
func_43:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 552
	.cfi_offset 3, -24
	mov	QWORD PTR -552[rbp], rdi
	mov	eax, esi
	mov	DWORD PTR -560[rbp], edx
	mov	BYTE PTR -556[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -24[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -516[rbp], -1
	mov	DWORD PTR -512[rbp], 2
	mov	DWORD PTR -508[rbp], 1773212387
	mov	DWORD PTR -504[rbp], 0
	mov	DWORD PTR -500[rbp], 1794584804
	lea	rax, g_215[rip+104]
	mov	QWORD PTR -488[rbp], rax
	mov	DWORD PTR -464[rbp], -4587551
	mov	DWORD PTR -460[rbp], -4587551
	mov	DWORD PTR -456[rbp], -4587551
	mov	DWORD PTR -452[rbp], -4587551
	mov	DWORD PTR -448[rbp], -4587551
	mov	DWORD PTR -444[rbp], -4587551
	mov	WORD PTR -528[rbp], 1
	mov	BYTE PTR -530[rbp], -98
	mov	DWORD PTR -524[rbp], 0
	jmp	.L96
.L99:
	mov	DWORD PTR -520[rbp], 0
	jmp	.L97
.L98:
	mov	eax, DWORD PTR -520[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -524[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	lea	rdx, g_677[rip]
	mov	QWORD PTR -400[rbp+rax*8], rdx
	add	DWORD PTR -520[rbp], 1
.L97:
	cmp	DWORD PTR -520[rbp], 2
	jle	.L98
	add	DWORD PTR -524[rbp], 1
.L96:
	cmp	DWORD PTR -524[rbp], 6
	jle	.L99
	mov	DWORD PTR -524[rbp], 0
	jmp	.L100
.L103:
	mov	DWORD PTR -520[rbp], 0
	jmp	.L101
.L102:
	mov	eax, DWORD PTR -520[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -524[rbp]
	cdqe
	add	rax, rdx
	mov	DWORD PTR -432[rbp+rax*4], -3
	add	DWORD PTR -520[rbp], 1
.L101:
	cmp	DWORD PTR -520[rbp], 0
	jle	.L102
	add	DWORD PTR -524[rbp], 1
.L100:
	cmp	DWORD PTR -524[rbp], 7
	jle	.L103
	mov	edi, 639
	call	step_hash
	movzx	edx, BYTE PTR -556[rbp]
	mov	eax, DWORD PTR -516[rbp]
	cmp	DWORD PTR -560[rbp], eax
	setnb	al
	movzx	eax, al
	and	eax, DWORD PTR -560[rbp]
	cmp	edx, eax
	setb	al
	movzx	edx, al
	movzx	eax, BYTE PTR -556[rbp]
	add	eax, edx
	test	eax, eax
	je	.L104
	lea	rax, g_578[rip]
	mov	QWORD PTR -472[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -224[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -216[rbp], rax
	mov	QWORD PTR -208[rbp], 0
	mov	QWORD PTR -200[rbp], 0
	lea	rax, g_578[rip]
	mov	QWORD PTR -192[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -184[rbp], rax
	mov	QWORD PTR -176[rbp], 0
	mov	QWORD PTR -168[rbp], 0
	lea	rax, g_578[rip]
	mov	QWORD PTR -160[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -152[rbp], rax
	mov	QWORD PTR -144[rbp], 0
	mov	QWORD PTR -136[rbp], 0
	lea	rax, g_578[rip]
	mov	QWORD PTR -128[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -120[rbp], rax
	mov	QWORD PTR -112[rbp], 0
	mov	QWORD PTR -104[rbp], 0
	lea	rax, g_578[rip]
	mov	QWORD PTR -96[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -88[rbp], rax
	mov	QWORD PTR -80[rbp], 0
	mov	QWORD PTR -72[rbp], 0
	lea	rax, g_578[rip]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -56[rbp], rax
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	edi, 627
	call	step_hash
	movzx	eax, WORD PTR g_1077[rip]
	sub	eax, 1
	mov	WORD PTR g_1077[rip], ax
	mov	edi, 628
	call	step_hash
	mov	rax, QWORD PTR -552[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -472[rbp]
	mov	esi, edx
	mov	rdi, rax
	call	func_47
	movsx	edx, ax
	mov	rax, QWORD PTR -472[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 634
	call	step_hash
	mov	DWORD PTR g_145[rip], 0
	nop
	mov	eax, DWORD PTR g_145[rip]
	cmp	eax, 29
	jbe	.L110
	mov	WORD PTR -526[rbp], 0
	mov	edi, 632
	call	step_hash
	cmp	WORD PTR -526[rbp], 0
	jne	.L117
	mov	edi, 633
	call	step_hash
	mov	eax, DWORD PTR g_578[rip]
	jmp	.L115
.L104:
	lea	rax, g_215[rip+8]
	mov	QWORD PTR -480[rbp], rax
	mov	BYTE PTR -529[rbp], -89
	mov	DWORD PTR -496[rbp], -1209640093
	mov	DWORD PTR -492[rbp], -780811679
	mov	edi, 636
	call	step_hash
	lea	rax, g_215[rip+80]
	cmp	QWORD PTR -480[rbp], rax
	setne	al
	movzx	ecx, al
	mov	eax, DWORD PTR g_891[rip]
	cwde
	mov	edx, DWORD PTR g_64[rip]
	movsx	esi, dx
	cdq
	idiv	esi
	mov	eax, DWORD PTR g_1001[rip]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	imul	eax, ecx
	cmp	eax, 148
	jle	.L111
	cmp	DWORD PTR -496[rbp], 0
	je	.L111
	mov	eax, 1
	jmp	.L112
.L111:
	mov	eax, 0
.L112:
	not	eax
	mov	edx, eax
	mov	eax, DWORD PTR g_760[rip]
	cmp	edx, eax
	setg	al
	movzx	eax, al
	mov	edx, DWORD PTR g_891[rip]
	sub	eax, edx
	mov	DWORD PTR -492[rbp], eax
	mov	edi, 637
	call	step_hash
	mov	DWORD PTR -492[rbp], -644186021
	mov	edi, 638
	call	step_hash
	mov	eax, DWORD PTR g_363[rip]
	jmp	.L115
.L117:
	nop
.L110:
	mov	edi, 640
	call	step_hash
	mov	rax, QWORD PTR -552[rbp]
	mov	ebx, DWORD PTR [rax]
	cmp	QWORD PTR -488[rbp], 0
	jne	.L113
	mov	edx, -3264
	jmp	.L114
.L113:
	mov	edx, -3232
.L114:
	mov	eax, DWORD PTR g_891[rip]
	xor	eax, 5
	mov	ecx, eax
	movzx	eax, BYTE PTR -556[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	esi, ebx
	mov	rdi, rax
	call	func_47
	mov	BYTE PTR -452[rbp], al
	mov	edi, 641
	call	step_hash
	movzx	eax, WORD PTR -528[rbp]
	add	eax, 1
	mov	WORD PTR -528[rbp], ax
	mov	edi, 642
	call	step_hash
	mov	eax, DWORD PTR -412[rbp]
	sub	eax, 1
	mov	DWORD PTR -412[rbp], eax
	mov	edi, 643
	call	step_hash
	mov	eax, DWORD PTR g_1001[rip]
.L115:
	mov	rbx, QWORD PTR -24[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L116
	call	__stack_chk_fail@PLT
.L116:
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	func_43, .-func_43
	.type	func_47, @function
func_47:
.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, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	DWORD PTR -12[rbp], esi
	mov	edi, 617
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	lea	rdx, -12[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 623
	call	step_hash
	mov	WORD PTR g_174[rip], 0
	nop
	movzx	eax, WORD PTR g_174[rip]
	cmp	ax, 16
	jne	.L122
	mov	edi, 621
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	lea	rdx, -12[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 622
	call	step_hash
	mov	eax, DWORD PTR -12[rbp]
	jmp	.L120
.L122:
	mov	edi, 624
	call	step_hash
	mov	eax, DWORD PTR -12[rbp]
.L120:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	func_47, .-func_47
	.type	func_50, @function
func_50:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	r14
	push	r13
	push	r12
	push	rbx
	sub	rsp, 3856
	.cfi_offset 14, -24
	.cfi_offset 13, -32
	.cfi_offset 12, -40
	.cfi_offset 3, -48
	mov	DWORD PTR -3876[rbp], edi
	mov	ecx, esi
	mov	eax, edx
	mov	edx, ecx
	mov	BYTE PTR -3880[rbp], dl
	mov	BYTE PTR -3884[rbp], al
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -40[rbp], rax
	xor	eax, eax
	mov	DWORD PTR -3568[rbp], 804807273
	mov	DWORD PTR -2368[rbp], -822766171
	mov	DWORD PTR -2364[rbp], -5
	mov	DWORD PTR -2360[rbp], -822766171
	mov	DWORD PTR -2356[rbp], -5
	mov	DWORD PTR -2352[rbp], -822766171
	mov	DWORD PTR -2348[rbp], -5
	mov	DWORD PTR -2344[rbp], -822766171
	mov	DWORD PTR -2340[rbp], -5
	mov	DWORD PTR -2336[rbp], -822766171
	mov	DWORD PTR -2332[rbp], -5
	mov	DWORD PTR -2328[rbp], -822766171
	mov	DWORD PTR -2324[rbp], -5
	mov	WORD PTR -3830[rbp], -25919
	mov	DWORD PTR -3572[rbp], -2127582076
	mov	DWORD PTR -3800[rbp], 8
	mov	DWORD PTR -3564[rbp], 184377158
	mov	DWORD PTR -3576[rbp], 0
	mov	BYTE PTR -3857[rbp], 50
	mov	DWORD PTR -3796[rbp], 1393886203
	mov	DWORD PTR -3580[rbp], -1
	mov	BYTE PTR -3856[rbp], -14
	mov	DWORD PTR -2592[rbp], -1
	mov	DWORD PTR -2588[rbp], -581126100
	mov	DWORD PTR -2584[rbp], -1
	mov	DWORD PTR -2580[rbp], -581126100
	mov	DWORD PTR -2576[rbp], -1
	mov	DWORD PTR -3792[rbp], 0
	mov	DWORD PTR -3584[rbp], -1487572303
	mov	DWORD PTR -3592[rbp], 1598567466
	mov	DWORD PTR -3588[rbp], 1310947679
	mov	DWORD PTR -3788[rbp], -1214251171
	lea	rax, g_215[rip+176]
	mov	QWORD PTR -3080[rbp], rax
	mov	DWORD PTR -1952[rbp], 1
	mov	DWORD PTR -1948[rbp], -3
	mov	DWORD PTR -1944[rbp], 1
	mov	DWORD PTR -1940[rbp], -3
	mov	DWORD PTR -1936[rbp], 1
	mov	DWORD PTR -1932[rbp], 1
	mov	DWORD PTR -1928[rbp], 1
	mov	DWORD PTR -1924[rbp], -3
	mov	DWORD PTR -1920[rbp], 1
	mov	DWORD PTR -1916[rbp], -3
	mov	DWORD PTR -1912[rbp], 1
	mov	DWORD PTR -1908[rbp], 1
	mov	DWORD PTR -1904[rbp], 1
	mov	DWORD PTR -1900[rbp], -3
	mov	DWORD PTR -1896[rbp], 1
	mov	DWORD PTR -1892[rbp], -3
	mov	DWORD PTR -1888[rbp], 1
	mov	DWORD PTR -1884[rbp], 1
	mov	DWORD PTR -1880[rbp], 1
	mov	DWORD PTR -1876[rbp], -3
	mov	DWORD PTR -1872[rbp], 1
	mov	DWORD PTR -1868[rbp], -3
	mov	DWORD PTR -1864[rbp], 1
	mov	DWORD PTR -1860[rbp], 1
	mov	DWORD PTR -1856[rbp], 1
	mov	DWORD PTR -1852[rbp], -3
	mov	DWORD PTR -1848[rbp], 1
	mov	DWORD PTR -1844[rbp], -3
	mov	DWORD PTR -1840[rbp], 1
	mov	DWORD PTR -1836[rbp], 1
	mov	DWORD PTR -1832[rbp], 1
	mov	DWORD PTR -1828[rbp], -3
	mov	DWORD PTR -1824[rbp], 1
	mov	DWORD PTR -1820[rbp], -3
	mov	DWORD PTR -1816[rbp], 1
	mov	DWORD PTR -1812[rbp], 1
	mov	WORD PTR -3828[rbp], 6016
	mov	DWORD PTR -3560[rbp], -211424640
	mov	DWORD PTR -3556[rbp], 1556329072
	mov	BYTE PTR -3855[rbp], -12
	lea	rax, g_2[rip]
	mov	QWORD PTR -688[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -680[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -672[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -664[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -656[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -648[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -640[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -632[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -624[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -616[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -608[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -600[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -592[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -584[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -576[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -568[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -560[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -552[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -544[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -536[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -528[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -520[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -512[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -504[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -496[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -488[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -480[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -472[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -464[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -456[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -448[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -440[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -432[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -424[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -416[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -408[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -400[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -392[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -384[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -376[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -368[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -360[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -352[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -344[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -336[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -328[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -320[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -312[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -304[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -296[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -280[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -272[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -264[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -256[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -248[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -240[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -232[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -224[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -216[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -208[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -200[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -192[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -184[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -176[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -168[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -160[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -152[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -144[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -136[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -128[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -120[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -112[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -104[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -96[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -88[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -80[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -72[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -56[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 40
	mov	QWORD PTR -3064[rbp], rax
	mov	QWORD PTR -2256[rbp], 0
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2248[rbp], rax
	mov	QWORD PTR -2240[rbp], 0
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2232[rbp], rax
	mov	QWORD PTR -2224[rbp], 0
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2216[rbp], rax
	mov	QWORD PTR -2208[rbp], 0
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2200[rbp], rax
	mov	QWORD PTR -2192[rbp], 0
	mov	QWORD PTR -3056[rbp], 0
	mov	WORD PTR -3836[rbp], -9
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -3048[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1264[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1256[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1248[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1240[rbp], rax
	mov	QWORD PTR -1232[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1224[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1216[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1208[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1200[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1192[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1184[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1176[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1168[rbp], rax
	mov	QWORD PTR -1160[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1152[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1144[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1136[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1128[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1120[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1112[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1104[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1096[rbp], rax
	mov	QWORD PTR -1088[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1080[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1072[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1064[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1056[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1048[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1040[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1032[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1024[rbp], rax
	mov	QWORD PTR -1016[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -1008[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -1000[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -992[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -984[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -976[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -968[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -960[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -952[rbp], rax
	mov	QWORD PTR -944[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -936[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -928[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -920[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -912[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -904[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -896[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -888[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -880[rbp], rax
	mov	QWORD PTR -872[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -864[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -856[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -848[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -840[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -832[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -824[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -816[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -808[rbp], rax
	mov	QWORD PTR -800[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -792[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -784[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -776[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -768[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -760[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -752[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -744[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -736[rbp], rax
	mov	QWORD PTR -728[rbp], 0
	lea	rax, -3792[rbp]
	mov	QWORD PTR -720[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -712[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -704[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -696[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -3040[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -3032[rbp], rax
	lea	rax, -2368[rbp]
	mov	QWORD PTR -3024[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -3016[rbp], rax
	mov	DWORD PTR -3616[rbp], 0
	jmp	.L124
.L125:
	mov	eax, DWORD PTR -3616[rbp]
	cdqe
	mov	BYTE PTR -47[rbp+rax], 32
	add	DWORD PTR -3616[rbp], 1
.L124:
	cmp	DWORD PTR -3616[rbp], 0
	jle	.L125
	mov	DWORD PTR -3616[rbp], 0
	jmp	.L126
.L127:
	mov	eax, DWORD PTR -3616[rbp]
	cdqe
	lea	rdx, -3788[rbp]
	mov	QWORD PTR -2632[rbp+rax*8], rdx
	add	DWORD PTR -3616[rbp], 1
.L126:
	cmp	DWORD PTR -3616[rbp], 0
	jle	.L127
	mov	DWORD PTR -3616[rbp], 0
	jmp	.L128
.L129:
	mov	eax, DWORD PTR -3616[rbp]
	cdqe
	lea	rdx, g_64[rip]
	mov	QWORD PTR -2624[rbp+rax*8], rdx
	add	DWORD PTR -3616[rbp], 1
.L128:
	cmp	DWORD PTR -3616[rbp], 1
	jle	.L129
	mov	edi, 455
	call	step_hash
	cmp	DWORD PTR -3568[rbp], 0
	je	.L130
	lea	rax, g_64[rip]
	mov	QWORD PTR -2976[rbp], rax
	mov	DWORD PTR -3612[rbp], 2142042155
	mov	BYTE PTR -3852[rbp], -5
	lea	rax, g_214[rip]
	mov	QWORD PTR -2416[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -2408[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -2400[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -2392[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -2384[rbp], rax
	mov	WORD PTR -3834[rbp], -6422
	mov	DWORD PTR -2176[rbp], -1
	mov	DWORD PTR -2172[rbp], 1764295539
	mov	DWORD PTR -2168[rbp], 1
	mov	DWORD PTR -2164[rbp], -1
	mov	DWORD PTR -2160[rbp], 1764295539
	mov	DWORD PTR -2156[rbp], 1
	mov	DWORD PTR -2152[rbp], -1
	mov	DWORD PTR -2148[rbp], 1764295539
	mov	DWORD PTR -2144[rbp], 1
	mov	DWORD PTR -2140[rbp], -1
	mov	DWORD PTR -2136[rbp], 1764295539
	mov	DWORD PTR -2132[rbp], 1
	mov	DWORD PTR -2128[rbp], -1
	mov	DWORD PTR -2124[rbp], 1764295539
	mov	DWORD PTR -2120[rbp], 1
	mov	DWORD PTR -2116[rbp], -1
	mov	DWORD PTR -2112[rbp], 1764295539
	mov	DWORD PTR -2108[rbp], 1
	mov	DWORD PTR -2104[rbp], -1
	mov	DWORD PTR -2100[rbp], 1764295539
	mov	DWORD PTR -2096[rbp], 1
	mov	WORD PTR -3832[rbp], -23286
	mov	BYTE PTR -3851[rbp], -1
	mov	DWORD PTR -2528[rbp], 0
	mov	DWORD PTR -2524[rbp], 0
	mov	DWORD PTR -2520[rbp], -4
	mov	DWORD PTR -2516[rbp], 0
	mov	DWORD PTR -2512[rbp], 0
	mov	DWORD PTR -2508[rbp], -4
	mov	DWORD PTR -3608[rbp], -596463630
	mov	DWORD PTR -3496[rbp], -1
	mov	DWORD PTR -3492[rbp], 0
	mov	DWORD PTR -3604[rbp], 0
	jmp	.L131
.L132:
	mov	eax, DWORD PTR -3604[rbp]
	cdqe
	lea	rdx, g_64[rip]
	mov	QWORD PTR -2464[rbp+rax*8], rdx
	add	DWORD PTR -3604[rbp], 1
.L131:
	cmp	DWORD PTR -3604[rbp], 4
	jle	.L132
	mov	DWORD PTR -3604[rbp], 0
	jmp	.L133
.L136:
	mov	DWORD PTR -3600[rbp], 0
	jmp	.L134
.L135:
	mov	eax, DWORD PTR -3600[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3604[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	WORD PTR -2608[rbp+rax*2], 1
	add	DWORD PTR -3600[rbp], 1
.L134:
	cmp	DWORD PTR -3600[rbp], 3
	jle	.L135
	add	DWORD PTR -3604[rbp], 1
.L133:
	cmp	DWORD PTR -3604[rbp], 0
	jle	.L136
	mov	edi, 138
	call	step_hash
	sub	DWORD PTR -3612[rbp], 1
	mov	edi, 212
	call	step_hash
	mov	DWORD PTR -3568[rbp], 0
	jmp	.L137
.L169:
	mov	DWORD PTR -3268[rbp], -1122833536
	mov	DWORD PTR -3264[rbp], 0
	mov	DWORD PTR -3260[rbp], -5
	mov	DWORD PTR -3256[rbp], -1
	mov	DWORD PTR -3596[rbp], -649367291
	mov	DWORD PTR -1808[rbp], -715721868
	mov	DWORD PTR -1804[rbp], -715721868
	mov	DWORD PTR -1800[rbp], 787356812
	mov	DWORD PTR -1796[rbp], -715721868
	mov	DWORD PTR -1792[rbp], -715721868
	mov	DWORD PTR -1788[rbp], 787356812
	mov	DWORD PTR -1784[rbp], -715721868
	mov	DWORD PTR -1780[rbp], -715721868
	mov	DWORD PTR -1776[rbp], 787356812
	mov	DWORD PTR -1772[rbp], -715721868
	mov	DWORD PTR -1768[rbp], -715721868
	mov	DWORD PTR -1764[rbp], 787356812
	mov	DWORD PTR -1760[rbp], -715721868
	mov	DWORD PTR -1756[rbp], -715721868
	mov	DWORD PTR -1752[rbp], 787356812
	mov	DWORD PTR -1748[rbp], -715721868
	mov	DWORD PTR -1744[rbp], -715721868
	mov	DWORD PTR -1740[rbp], 787356812
	mov	DWORD PTR -1736[rbp], -715721868
	mov	DWORD PTR -1732[rbp], -715721868
	mov	DWORD PTR -1728[rbp], 787356812
	mov	DWORD PTR -1724[rbp], -715721868
	mov	DWORD PTR -1720[rbp], -715721868
	mov	DWORD PTR -1716[rbp], 787356812
	mov	BYTE PTR -3859[rbp], 2
	movabs	rax, 1914340527127468689
	mov	QWORD PTR -2320[rbp], rax
	mov	BYTE PTR -2312[rbp], -111
	mov	QWORD PTR -2311[rbp], rax
	mov	BYTE PTR -2303[rbp], -111
	mov	QWORD PTR -2302[rbp], rax
	mov	BYTE PTR -2294[rbp], -111
	mov	QWORD PTR -2293[rbp], rax
	mov	BYTE PTR -2285[rbp], -111
	mov	QWORD PTR -2284[rbp], rax
	mov	BYTE PTR -2276[rbp], -111
	mov	QWORD PTR -2275[rbp], rax
	mov	BYTE PTR -2267[rbp], -111
	mov	QWORD PTR -2266[rbp], rax
	mov	BYTE PTR -2258[rbp], -111
	mov	DWORD PTR -2560[rbp], 25100545
	mov	DWORD PTR -2556[rbp], 25100545
	mov	DWORD PTR -2552[rbp], 25100545
	mov	DWORD PTR -3252[rbp], -1414606919
	mov	edi, 209
	call	step_hash
	mov	DWORD PTR g_64[rip], 0
	jmp	.L138
.L168:
	lea	rax, g_214[rip]
	mov	QWORD PTR -1632[rbp], rax
	mov	QWORD PTR -1624[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1616[rbp], rax
	mov	QWORD PTR -1608[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1600[rbp], rax
	mov	QWORD PTR -1592[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1584[rbp], rax
	mov	QWORD PTR -1576[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1568[rbp], rax
	mov	QWORD PTR -1560[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1552[rbp], rax
	mov	QWORD PTR -1544[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1536[rbp], rax
	mov	QWORD PTR -1528[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1520[rbp], rax
	mov	QWORD PTR -1512[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1504[rbp], rax
	mov	QWORD PTR -1496[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -1488[rbp], rax
	mov	QWORD PTR -1480[rbp], 0
	mov	DWORD PTR -3248[rbp], -7
	mov	DWORD PTR -2080[rbp], 461774256
	mov	DWORD PTR -2076[rbp], 461774256
	mov	DWORD PTR -2072[rbp], -1011147240
	mov	DWORD PTR -2068[rbp], 461774256
	mov	DWORD PTR -2064[rbp], 461774256
	mov	DWORD PTR -2060[rbp], -1011147240
	mov	DWORD PTR -2056[rbp], 461774256
	mov	DWORD PTR -2052[rbp], 461774256
	mov	DWORD PTR -2048[rbp], 461774256
	mov	DWORD PTR -2044[rbp], -1011147240
	mov	DWORD PTR -2040[rbp], 461774256
	mov	DWORD PTR -2036[rbp], 461774256
	mov	DWORD PTR -2032[rbp], -1011147240
	mov	DWORD PTR -2028[rbp], 461774256
	mov	DWORD PTR -2024[rbp], 461774256
	mov	DWORD PTR -2020[rbp], 461774256
	mov	DWORD PTR -2016[rbp], -1011147240
	mov	DWORD PTR -2012[rbp], 461774256
	mov	DWORD PTR -2008[rbp], 461774256
	mov	DWORD PTR -2004[rbp], -1011147240
	mov	DWORD PTR -2000[rbp], 461774256
	mov	BYTE PTR -3847[rbp], 1
	mov	edi, 169
	call	step_hash
	mov	DWORD PTR -3572[rbp], 0
	jmp	.L139
.L154:
	mov	DWORD PTR -3228[rbp], -789496768
	lea	rax, g_2[rip]
	mov	QWORD PTR -2936[rbp], rax
	mov	DWORD PTR -3224[rbp], -1109209077
	mov	DWORD PTR -3220[rbp], 1
	mov	DWORD PTR -3216[rbp], 1
	mov	BYTE PTR -3844[rbp], 28
	mov	BYTE PTR -3843[rbp], 9
	mov	DWORD PTR -3688[rbp], 0
	jmp	.L140
.L141:
	mov	eax, DWORD PTR -3688[rbp]
	cdqe
	mov	DWORD PTR -2636[rbp+rax*4], 345229866
	add	DWORD PTR -3688[rbp], 1
.L140:
	cmp	DWORD PTR -3688[rbp], 0
	jle	.L141
	mov	edi, 152
	call	step_hash
	mov	WORD PTR g_73[rip], -3
	jmp	.L142
.L143:
	mov	DWORD PTR -3164[rbp], 438606376
	mov	edi, 151
	call	step_hash
	add	DWORD PTR -3164[rbp], 1
	movzx	eax, WORD PTR g_73[rip]
	add	eax, 1
	mov	WORD PTR g_73[rip], ax
.L142:
	movzx	eax, WORD PTR g_73[rip]
	cmp	ax, 25
	jbe	.L143
	mov	edi, 160
	call	step_hash
	movzx	eax, WORD PTR g_174[rip]
	movsx	edx, ax
	movzx	eax, WORD PTR g_173[rip]
	cwde
	cmp	DWORD PTR -3228[rbp], eax
	setne	al
	movzx	eax, al
	cmp	edx, eax
	setg	al
	movzx	edx, al
	mov	rax, QWORD PTR -1552[rbp]
	test	rax, rax
	je	.L144
	mov	eax, 2
	jmp	.L145
.L144:
	mov	eax, 0
.L145:
	cmp	eax, edx
	jge	.L146
	mov	edi, 154
	call	step_hash
	mov	DWORD PTR -2340[rbp], 1
	mov	edi, 155
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR -2936[rbp]
	mov	QWORD PTR [rax], rdx
	jmp	.L147
.L146:
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -2928[rbp], rax
	mov	DWORD PTR -3212[rbp], -316270175
	mov	DWORD PTR -3208[rbp], -9
	mov	DWORD PTR -3204[rbp], 2003752899
	mov	DWORD PTR -3200[rbp], -1
	mov	DWORD PTR -3196[rbp], 1266475165
	mov	DWORD PTR -3192[rbp], 0
	mov	DWORD PTR -3188[rbp], 0
	mov	DWORD PTR -3184[rbp], -124642668
	mov	DWORD PTR -3180[rbp], 1342882761
	mov	WORD PTR -3814[rbp], 2594
	mov	DWORD PTR -3684[rbp], 0
	jmp	.L148
.L149:
	mov	eax, DWORD PTR -3684[rbp]
	cdqe
	mov	DWORD PTR -2496[rbp+rax*4], 0
	add	DWORD PTR -3684[rbp], 1
.L148:
	cmp	DWORD PTR -3684[rbp], 6
	jle	.L149
	mov	edi, 157
	call	step_hash
	mov	rax, QWORD PTR -2440[rbp]
	mov	QWORD PTR -2928[rbp], rax
	mov	edi, 158
	call	step_hash
	movzx	eax, BYTE PTR -47[rbp]
	sub	eax, 1
	mov	BYTE PTR -47[rbp], al
	mov	edi, 159
	call	step_hash
	movzx	eax, BYTE PTR -3857[rbp]
	sub	eax, 1
	mov	BYTE PTR -3857[rbp], al
.L147:
	mov	edi, 168
	call	step_hash
	cmp	BYTE PTR -3880[rbp], 0
	je	.L150
	mov	DWORD PTR -46[rbp], 27722151
	mov	WORD PTR -3812[rbp], -1
	mov	DWORD PTR -3172[rbp], 9
	mov	DWORD PTR -3168[rbp], 848985394
	mov	edi, 162
	call	step_hash
	mov	rdx, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	edi, 163
	call	step_hash
	add	BYTE PTR -3844[rbp], 1
	mov	edi, 164
	call	step_hash
	movzx	eax, BYTE PTR -3843[rbp]
	sub	eax, 1
	mov	BYTE PTR -3843[rbp], al
	mov	edi, 165
	call	step_hash
	and	DWORD PTR -3596[rbp], 1
	jmp	.L151
.L150:
	mov	DWORD PTR -3176[rbp], 37895010
	mov	edi, 167
	call	step_hash
	mov	rax, QWORD PTR -2936[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	edx, al
	mov	eax, DWORD PTR -3876[rbp]
	movsx	eax, al
	imul	eax, edx
	test	eax, eax
	je	.L152
	movzx	eax, BYTE PTR g_319[rip]
	test	al, al
	je	.L152
	mov	eax, 1
	jmp	.L153
.L152:
	mov	eax, 0
.L153:
	movzx	eax, al
	imul	eax, eax, 158
	mov	ecx, eax
	mov	eax, DWORD PTR -2352[rbp]
	cmp	DWORD PTR -3876[rbp], eax
	setne	al
	movzx	eax, al
	mov	ebx, DWORD PTR -2340[rbp]
	cdq
	idiv	ebx
	mov	ebx, eax
	mov	eax, ecx
	mov	edx, 0
	div	ebx
	mov	DWORD PTR -3176[rbp], eax
.L151:
	add	DWORD PTR -3572[rbp], 3
.L139:
	cmp	DWORD PTR -3572[rbp], 8
	jle	.L154
	mov	edi, 184
	call	step_hash
	mov	WORD PTR -3830[rbp], 0
	jmp	.L155
.L160:
	mov	BYTE PTR -3846[rbp], -84
	mov	DWORD PTR -3232[rbp], -1239665434
	mov	edi, 173
	call	step_hash
	movzx	eax, BYTE PTR g_178[rip+19]
	test	al, al
	je	.L156
	cmp	BYTE PTR -3880[rbp], 0
	je	.L156
	mov	eax, 1
	jmp	.L157
.L156:
	mov	eax, 0
.L157:
	mov	BYTE PTR -3847[rbp], al
	mov	edi, 174
	call	step_hash
	mov	DWORD PTR -3796[rbp], 0
	mov	edi, 183
	call	step_hash
	cmp	BYTE PTR -3846[rbp], 0
	je	.L158
	mov	edi, 176
	call	step_hash
	mov	ecx, DWORD PTR g_64[rip]
	cmp	BYTE PTR -3859[rbp], 0
	sete	al
	movzx	eax, al
	mov	rbx, QWORD PTR g_214[rip]
	mov	edx, 1
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	mov	edi, 177
	call	step_hash
	movzx	eax, BYTE PTR -2550[rbp]
	movsx	eax, al
	or	DWORD PTR -3232[rbp], eax
	mov	edi, 178
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR [rax]
	jmp	.L399
.L158:
	mov	BYTE PTR -3845[rbp], -60
	mov	edi, 180
	call	step_hash
	movzx	edx, BYTE PTR -3884[rbp]
	mov	eax, DWORD PTR g_363[rip]
	and	eax, edx
	mov	DWORD PTR g_363[rip], eax
	mov	edi, 181
	call	step_hash
	movsx	edx, BYTE PTR -3845[rbp]
	cmp	BYTE PTR -3845[rbp], 0
	sete	al
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	DWORD PTR -3800[rbp], eax
	mov	edi, 182
	call	step_hash
	movsx	eax, BYTE PTR -3880[rbp]
	mov	DWORD PTR -3800[rbp], eax
	movzx	eax, WORD PTR -3830[rbp]
	sub	eax, 8
	mov	WORD PTR -3830[rbp], ax
.L155:
	cmp	WORD PTR -3830[rbp], -21
	je	.L160
	mov	edi, 207
	call	step_hash
	movzx	eax, BYTE PTR g_178[rip+4]
	movzx	eax, al
	cmp	DWORD PTR -3876[rbp], eax
	je	.L161
	mov	edi, 190
	call	step_hash
	mov	BYTE PTR -3859[rbp], 0
	jmp	.L162
.L163:
	mov	edi, 189
	call	step_hash
	mov	DWORD PTR -3256[rbp], 152031185
	movzx	eax, BYTE PTR -3859[rbp]
	sub	eax, 2
	mov	BYTE PTR -3859[rbp], al
.L162:
	cmp	BYTE PTR -3859[rbp], -24
	je	.L163
	mov	edi, 197
	call	step_hash
	mov	WORD PTR -3830[rbp], 0
	cmp	WORD PTR -3830[rbp], 0
	js	.L164
	mov	DWORD PTR -3236[rbp], 5
	mov	edi, 194
	call	step_hash
	movsx	eax, WORD PTR -3830[rbp]
	cdqe
	movzx	eax, BYTE PTR -47[rbp+rax]
	movzx	ecx, al
	movsx	eax, WORD PTR -3830[rbp]
	lea	edx, 2[rax]
	movsx	eax, WORD PTR -3830[rbp]
	movsx	rsi, eax
	movsx	rax, edx
	sal	rax, 2
	lea	rax, -32[rax]
	add	rax, rbp
	add	rax, rsi
	sub	rax, 2528
	movzx	eax, BYTE PTR [rax]
	movsx	eax, al
	and	eax, 1
	lea	edx, [rcx+rax]
	movzx	eax, BYTE PTR g_319[rip]
	movsx	eax, al
	cmp	edx, eax
	setg	al
	movzx	eax, al
	mov	DWORD PTR -3268[rbp], eax
	mov	edi, 195
	call	step_hash
	movsx	eax, BYTE PTR -3880[rbp]
	and	DWORD PTR -3236[rbp], eax
	mov	edi, 196
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR [rax]
	jmp	.L399
.L161:
	mov	WORD PTR -3816[rbp], -1
	mov	DWORD PTR -3680[rbp], 1
	mov	edi, 206
	call	step_hash
	mov	DWORD PTR -3612[rbp], 5
	jmp	.L165
.L166:
	mov	DWORD PTR -3244[rbp], 1328992890
	mov	DWORD PTR -3240[rbp], -939195224
	mov	edi, 202
	call	step_hash
	mov	eax, DWORD PTR -3268[rbp]
	mov	WORD PTR -3816[rbp], ax
	mov	edi, 203
	call	step_hash
	mov	DWORD PTR -3244[rbp], 0
	mov	edi, 204
	call	step_hash
	sub	DWORD PTR -3580[rbp], 1
	mov	edi, 205
	call	step_hash
	movzx	eax, BYTE PTR -3884[rbp]
	or	DWORD PTR -3680[rbp], eax
	add	DWORD PTR -3612[rbp], 1
.L165:
	cmp	DWORD PTR -3612[rbp], 15
	jbe	.L166
.L164:
	mov	edi, 208
	call	step_hash
	movzx	eax, WORD PTR g_173[rip]
	cwde
	mov	DWORD PTR -3252[rbp], eax
	mov	eax, DWORD PTR g_64[rip]
	add	eax, 1
	mov	DWORD PTR g_64[rip], eax
.L138:
	mov	eax, DWORD PTR g_64[rip]
	cmp	eax, 13
	je	.L168
	mov	edi, 210
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR -2976[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 211
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR -2976[rbp]
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -3568[rbp], 1
.L137:
	cmp	DWORD PTR -3568[rbp], 7
	jne	.L169
	mov	edi, 293
	call	step_hash
	mov	DWORD PTR -3488[rbp], -1473578795
	mov	DWORD PTR -3484[rbp], -978035909
	mov	DWORD PTR -3480[rbp], 1
	mov	edi, 214
	call	step_hash
	add	BYTE PTR -3852[rbp], 1
	mov	edi, 219
	call	step_hash
	mov	WORD PTR g_174[rip], -28
	jmp	.L170
.L171:
	mov	WORD PTR -3818[rbp], 5
	mov	DWORD PTR -3280[rbp], 1133747527
	mov	DWORD PTR -3276[rbp], -799773858
	mov	DWORD PTR -3272[rbp], 1482603301
	mov	edi, 218
	call	step_hash
	add	BYTE PTR -3856[rbp], 1
	movzx	eax, WORD PTR g_174[rip]
	add	eax, 5
	mov	WORD PTR g_174[rip], ax
.L170:
	movzx	eax, WORD PTR g_174[rip]
	cmp	ax, 25
	jne	.L171
	mov	edi, 397
	call	step_hash
	movzx	eax, WORD PTR g_173[rip]
	cwde
	mov	edi, eax
	call	func_59
	test	eax, eax
	je	.L172
	mov	DWORD PTR -3472[rbp], -1
	lea	rax, g_214[rip]
	mov	QWORD PTR -2952[rbp], rax
	mov	DWORD PTR -3468[rbp], -248575703
	mov	DWORD PTR -3676[rbp], 0
	mov	DWORD PTR -3464[rbp], 1084113191
	mov	DWORD PTR -3460[rbp], 1663560674
	mov	DWORD PTR -3672[rbp], 0
	mov	DWORD PTR -3456[rbp], -1
	mov	DWORD PTR -3452[rbp], -1
	mov	DWORD PTR -3448[rbp], -1
	mov	DWORD PTR -3444[rbp], -2085850665
	mov	DWORD PTR -3440[rbp], -1
	mov	DWORD PTR -3436[rbp], -9
	mov	DWORD PTR -3432[rbp], -1193962053
	mov	DWORD PTR -3428[rbp], 1561125204
	mov	DWORD PTR -3424[rbp], 0
	mov	WORD PTR -3824[rbp], -3717
	mov	WORD PTR -3822[rbp], 0
	mov	DWORD PTR -3420[rbp], 642100112
	mov	DWORD PTR -3668[rbp], -7
	mov	edi, 317
	call	step_hash
	movsx	ecx, BYTE PTR -3880[rbp]
	mov	eax, DWORD PTR -3472[rbp]
	sub	eax, ecx
	mov	edx, eax
	cmp	DWORD PTR -3876[rbp], 0
	sete	al
	movzx	eax, al
	cmp	edx, eax
	setge	al
	movzx	edx, al
	movsx	eax, BYTE PTR -3880[rbp]
	movzx	ecx, WORD PTR g_173[rip]
	movsx	esi, cx
	cmp	QWORD PTR -2952[rbp], 0
	sete	cl
	movzx	ecx, cl
	cmp	esi, ecx
	jne	.L173
	cmp	DWORD PTR -3468[rbp], 0
	je	.L173
	mov	ecx, 1
	jmp	.L174
.L173:
	mov	ecx, 0
.L174:
	cmp	ecx, eax
	setle	al
	movzx	eax, al
	cmp	DWORD PTR -3472[rbp], eax
	setle	al
	movzx	ecx, al
	mov	eax, DWORD PTR g_145[rip]
	movzx	eax, ax
	imul	eax, ecx
	cmp	edx, eax
	setne	al
	movzx	eax, al
	mov	edi, eax
	call	func_59
	movsx	edx, al
	movzx	eax, BYTE PTR g_319[rip]
	movsx	eax, al
	add	edx, eax
	movzx	eax, WORD PTR g_173[rip]
	cwde
	cmp	edx, eax
	jge	.L175
	mov	edi, 296
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR [rax]
	jmp	.L399
.L175:
	mov	BYTE PTR -3850[rbp], -69
	mov	edi, 315
	call	step_hash
	mov	WORD PTR -1632[rbp], -10
	mov	WORD PTR -1630[rbp], 21935
	mov	WORD PTR -1628[rbp], -10
	mov	WORD PTR -1626[rbp], -10
	mov	WORD PTR -1624[rbp], 21935
	mov	WORD PTR -1622[rbp], -10
	mov	WORD PTR -1620[rbp], -10
	mov	WORD PTR -1618[rbp], 21935
	mov	WORD PTR -1616[rbp], -10
	mov	WORD PTR -1614[rbp], -10
	mov	WORD PTR -1612[rbp], 21935
	mov	WORD PTR -1610[rbp], -10
	mov	WORD PTR -1608[rbp], -10
	mov	WORD PTR -1606[rbp], 21935
	mov	WORD PTR -1604[rbp], -10
	mov	WORD PTR -1602[rbp], -10
	mov	WORD PTR -1600[rbp], 21935
	mov	WORD PTR -1598[rbp], -10
	mov	WORD PTR -1596[rbp], -10
	mov	WORD PTR -1594[rbp], 21935
	mov	WORD PTR -1592[rbp], -10
	mov	WORD PTR -1590[rbp], -10
	mov	WORD PTR -1588[rbp], 21935
	mov	WORD PTR -1586[rbp], -10
	mov	WORD PTR -1584[rbp], -10
	mov	WORD PTR -1582[rbp], 21935
	mov	WORD PTR -1580[rbp], -10
	mov	WORD PTR -1578[rbp], -10
	mov	WORD PTR -1576[rbp], 21935
	mov	WORD PTR -1574[rbp], -10
	mov	DWORD PTR -3768[rbp], -1713269241
	mov	edi, 306
	call	step_hash
	mov	BYTE PTR -3880[rbp], -8
	jmp	.L176
.L181:
	mov	DWORD PTR -3292[rbp], -1
	mov	DWORD PTR -3288[rbp], 1687663767
	mov	DWORD PTR -3284[rbp], 103508084
	mov	edi, 302
	call	step_hash
	mov	rdx, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR -2952[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	edi, 303
	call	step_hash
	cmp	BYTE PTR -3884[rbp], 0
	jne	.L403
	mov	edi, 304
	call	step_hash
	mov	rax, QWORD PTR -2976[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	eax, DWORD PTR -3792[rbp]
	test	eax, eax
	je	.L179
	mov	eax, DWORD PTR -3292[rbp]
	movsx	esi, ax
	movzx	eax, BYTE PTR -3884[rbp]
	movsx	dx, al
	mov	rax, QWORD PTR -2952[rbp]
	mov	rax, QWORD PTR [rax]
	test	rax, rax
	sete	al
	movzx	edi, al
	mov	eax, edx
	sub	eax, edi
	mov	edx, eax
	mov	eax, DWORD PTR g_64[rip]
	and	eax, edx
	cwde
	add	esi, eax
	movsx	edx, BYTE PTR -3880[rbp]
	mov	eax, DWORD PTR g_363[rip]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	cmp	esi, eax
	jg	.L179
	mov	eax, 1
	jmp	.L180
.L179:
	mov	eax, 0
.L180:
	cwde
	movzx	edx, WORD PTR -1630[rbp]
	movsx	ebx, dx
	cdq
	idiv	ebx
	cmp	ecx, eax
	sete	al
	movzx	edx, al
	mov	eax, DWORD PTR -3768[rbp]
	and	eax, edx
	mov	DWORD PTR -3768[rbp], eax
	mov	edi, 305
	call	step_hash
	sub	DWORD PTR -3592[rbp], 1
	jmp	.L178
.L403:
	nop
.L178:
	movzx	eax, BYTE PTR -3880[rbp]
	add	eax, 1
	mov	BYTE PTR -3880[rbp], al
.L176:
	cmp	BYTE PTR -3880[rbp], -4
	jl	.L181
	mov	edi, 312
	call	step_hash
	mov	DWORD PTR -3592[rbp], -17
	jmp	.L182
.L183:
	mov	edi, 310
	call	step_hash
	mov	rax, QWORD PTR -2976[rbp]
	mov	eax, DWORD PTR [rax]
	xor	eax, 1
	mov	edx, eax
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 311
	call	step_hash
	mov	edi, 0
	call	func_59
	and	eax, 8
	mov	DWORD PTR -3768[rbp], eax
	add	DWORD PTR -3592[rbp], 1
.L182:
	cmp	DWORD PTR -3592[rbp], 44
	ja	.L183
	mov	edi, 316
	call	step_hash
	mov	rax, QWORD PTR -2408[rbp]
	test	rax, rax
	setne	al
	movzx	eax, al
	mov	edi, eax
	call	func_59
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], 1
	mov	edi, 318
	call	step_hash
	mov	rax, QWORD PTR -2976[rbp]
	mov	eax, DWORD PTR [rax]
	cwde
	mov	edi, eax
	call	func_59
	shr	al, 2
	movzx	eax, al
	or	DWORD PTR -3676[rbp], eax
	mov	edi, 366
	call	step_hash
	movzx	ebx, BYTE PTR -3857[rbp]
	mov	edi, 0
	call	func_59
	mov	edx, DWORD PTR -3676[rbp]
	cmp	eax, edx
	seta	al
	movzx	edx, al
	mov	eax, ebx
	sub	eax, edx
	movzx	eax, ax
	sal	eax, 15
	cwde
	mov	edi, eax
	call	func_59
	cmp	eax, -1973334166
	sete	al
	movzx	edx, al
	movzx	eax, WORD PTR g_173[rip]
	cwde
	cmp	edx, eax
	jle	.L184
	mov	DWORD PTR -3348[rbp], -75472792
	mov	DWORD PTR -3344[rbp], -5
	mov	DWORD PTR -3340[rbp], 1
	mov	DWORD PTR -3336[rbp], 0
	mov	DWORD PTR -3332[rbp], 1
	mov	DWORD PTR -3328[rbp], 1456315223
	mov	DWORD PTR -3324[rbp], -9
	mov	DWORD PTR -3320[rbp], 2
	mov	DWORD PTR -3316[rbp], -929526906
	mov	DWORD PTR -3312[rbp], 0
	mov	DWORD PTR -3308[rbp], -1987326372
	mov	DWORD PTR -3304[rbp], -944517847
	mov	DWORD PTR -1632[rbp], 588176436
	mov	DWORD PTR -1628[rbp], -1597709883
	mov	DWORD PTR -1624[rbp], 588176436
	mov	DWORD PTR -1620[rbp], -1597709883
	mov	DWORD PTR -1616[rbp], 588176436
	mov	DWORD PTR -1612[rbp], -1597709883
	mov	DWORD PTR -1608[rbp], 588176436
	mov	DWORD PTR -1604[rbp], -1597709883
	mov	DWORD PTR -1600[rbp], 588176436
	mov	DWORD PTR -1596[rbp], -1597709883
	mov	DWORD PTR -1592[rbp], 588176436
	mov	DWORD PTR -1588[rbp], -1597709883
	mov	DWORD PTR -1584[rbp], 588176436
	mov	DWORD PTR -1580[rbp], -1597709883
	mov	BYTE PTR -3858[rbp], 2
	mov	DWORD PTR -3664[rbp], 0
	jmp	.L185
.L186:
	mov	eax, DWORD PTR -3664[rbp]
	cdqe
	mov	WORD PTR -2080[rbp+rax*2], 14403
	add	DWORD PTR -3664[rbp], 1
.L185:
	cmp	DWORD PTR -3664[rbp], 9
	jle	.L186
	mov	edi, 335
	call	step_hash
	mov	eax, DWORD PTR g_363[rip]
	cwde
	mov	edi, eax
	call	func_59
	test	eax, eax
	jne	.L187
	movzx	ebx, BYTE PTR -3884[rbp]
	movzx	eax, WORD PTR g_73[rip]
	cwde
	mov	edi, eax
	call	func_59
	movzx	eax, al
	sal	eax, 2
	add	eax, ebx
	test	eax, eax
	je	.L188
.L187:
	mov	eax, 1
	jmp	.L189
.L188:
	mov	eax, 0
.L189:
	movsx	rdx, eax
	mov	eax, DWORD PTR -3876[rbp]
	sub	ax, 13362
	movsx	ecx, ax
	mov	eax, DWORD PTR -3876[rbp]
	cwde
	imul	eax, ecx
	cmp	eax, 1
	setg	al
	movzx	eax, al
	cmp	rdx, rax
	jl	.L190
	lea	rax, g_64[rip]
	mov	QWORD PTR -2944[rbp], rax
	mov	DWORD PTR -3300[rbp], -5
	mov	DWORD PTR -3296[rbp], 956169945
	mov	DWORD PTR -1808[rbp], -1
	mov	DWORD PTR -1804[rbp], 101582982
	mov	DWORD PTR -1800[rbp], -1
	mov	DWORD PTR -1796[rbp], 101582982
	mov	DWORD PTR -1792[rbp], -1
	mov	DWORD PTR -1788[rbp], 101582982
	mov	DWORD PTR -1784[rbp], -1
	mov	DWORD PTR -1780[rbp], 101582982
	mov	DWORD PTR -1776[rbp], -1
	mov	edi, 325
	call	step_hash
	mov	DWORD PTR -3876[rbp], 0
	jmp	.L191
.L192:
	mov	edi, 324
	call	step_hash
	mov	rax, QWORD PTR -2952[rbp]
	mov	rax, QWORD PTR [rax]
	mov	rdx, QWORD PTR -2944[rbp]
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -3876[rbp], 1
.L191:
	cmp	DWORD PTR -3876[rbp], 2
	jbe	.L192
	mov	edi, 330
	call	step_hash
	mov	DWORD PTR -3676[rbp], 0
	jmp	.L193
.L196:
	mov	BYTE PTR -3848[rbp], -7
	mov	DWORD PTR -3660[rbp], 0
	jmp	.L194
.L195:
	mov	eax, DWORD PTR -3660[rbp]
	cdqe
	mov	DWORD PTR -2320[rbp+rax*4], 395101268
	add	DWORD PTR -3660[rbp], 1
.L194:
	cmp	DWORD PTR -3660[rbp], 3
	jle	.L195
	mov	edi, 329
	call	step_hash
	movzx	eax, BYTE PTR -3858[rbp]
	add	eax, 1
	mov	BYTE PTR -3858[rbp], al
	add	DWORD PTR -3676[rbp], 1
.L193:
	cmp	DWORD PTR -3676[rbp], 4
	jne	.L196
	mov	edi, 331
	call	step_hash
	mov	eax, DWORD PTR -2172[rbp]
	sub	eax, 1
	mov	DWORD PTR -2172[rbp], eax
	mov	edi, 332
	call	step_hash
	mov	eax, DWORD PTR -3304[rbp]
	movsx	edx, ax
	movzx	eax, WORD PTR g_73[rip]
	movzx	ecx, ax
	movsx	eax, BYTE PTR -3880[rbp]
	mov	rsi, QWORD PTR -2952[rbp]
	mov	rbx, QWORD PTR [rsi]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	jmp	.L235
.L190:
	mov	edi, 334
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR [rax]
	jmp	.L399
.L184:
	mov	DWORD PTR -3416[rbp], 1
	mov	DWORD PTR -3656[rbp], 0
	jmp	.L198
.L201:
	mov	DWORD PTR -3652[rbp], 0
	jmp	.L199
.L200:
	mov	eax, DWORD PTR -3652[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3656[rbp]
	cdqe
	add	rax, rdx
	mov	DWORD PTR -1632[rbp+rax*4], -6
	add	DWORD PTR -3652[rbp], 1
.L199:
	cmp	DWORD PTR -3652[rbp], 0
	jle	.L200
	add	DWORD PTR -3656[rbp], 1
.L198:
	cmp	DWORD PTR -3656[rbp], 2
	jle	.L201
	mov	edi, 337
	call	step_hash
	cmp	DWORD PTR -3416[rbp], 0
	je	.L202
	mov	eax, DWORD PTR g_2[rip]
	cwde
	mov	edx, DWORD PTR -3416[rbp]
	movsx	ebx, dx
	cdq
	idiv	ebx
	mov	edx, eax
	mov	eax, DWORD PTR g_2[rip]
	xor	eax, edx
	movzx	ebx, al
	mov	edi, 0
	call	func_59
	mov	edx, eax
	mov	eax, DWORD PTR -3424[rbp]
	xor	edx, eax
	mov	eax, 1
	sub	eax, edx
	movzx	eax, al
	mov	ecx, eax
	sal	ebx, cl
	mov	eax, ebx
	cmp	ax, 1
	je	.L202
	mov	eax, 1
	jmp	.L203
.L202:
	mov	eax, 0
.L203:
	cdqe
	mov	edx, 2332521532
	or	rax, rdx
	mov	edx, DWORD PTR -1624[rbp]
	xor	eax, edx
	mov	DWORD PTR -1624[rbp], eax
	mov	edi, 338
	call	step_hash
	cmp	DWORD PTR -3876[rbp], 0
	setne	al
	movzx	eax, al
	mov	edx, DWORD PTR g_578[rip]
	mov	ebx, edx
	mov	edx, 0
	div	ebx
	mov	edx, eax
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 345
	call	step_hash
	mov	DWORD PTR -3576[rbp], 0
	jmp	.L204
.L209:
	mov	DWORD PTR -3352[rbp], 0
	mov	edi, 342
	call	step_hash
	mov	rdx, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	mov	edi, 343
	call	step_hash
	movzx	edx, BYTE PTR -3884[rbp]
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 344
	call	step_hash
	mov	rax, QWORD PTR -2976[rbp]
	mov	edi, DWORD PTR [rax]
	movsx	eax, BYTE PTR -3880[rbp]
	cmp	DWORD PTR -3352[rbp], eax
	setnb	al
	movzx	edx, al
	movzx	eax, BYTE PTR g_178[rip+4]
	movzx	eax, al
	cmp	edx, eax
	setge	al
	movzx	eax, al
	and	eax, DWORD PTR -3876[rbp]
	mov	ecx, eax
	mov	rax, QWORD PTR -2952[rbp]
	mov	rax, QWORD PTR [rax]
	lea	rdx, g_215[rip+24]
	cmp	rax, rdx
	jne	.L205
	mov	edx, 1635619921
	jmp	.L206
.L205:
	mov	edx, 1635619920
.L206:
	mov	eax, DWORD PTR g_363[rip]
	xor	eax, edx
	movsx	esi, BYTE PTR -3880[rbp]
	mov	edx, 0
	div	esi
	mov	eax, edx
	sar	ax, 8
	movsx	edx, ax
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, ax
	and	eax, edx
	test	eax, eax
	setne	al
	movzx	edx, al
	mov	eax, DWORD PTR -1632[rbp]
	cmp	edx, eax
	setge	al
	movzx	eax, al
	cmp	ecx, eax
	seta	al
	movzx	eax, al
	cmp	DWORD PTR -3352[rbp], eax
	je	.L207
	mov	eax, 1704950237
	jmp	.L208
.L207:
	mov	eax, 1704950236
.L208:
	or	eax, edi
	mov	edx, eax
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -3576[rbp], 1
.L204:
	cmp	DWORD PTR -3576[rbp], 25
	jle	.L209
	mov	edi, 365
	call	step_hash
	movzx	eax, WORD PTR g_73[rip]
	test	ax, ax
	setne	al
	movzx	eax, al
	sar	ax, 7
	cwde
	movzx	edx, WORD PTR g_627[rip]
	cmp	dx, 1
	je	.L210
	cmp	DWORD PTR -3876[rbp], 0
	je	.L211
.L210:
	mov	edx, 1
	jmp	.L212
.L211:
	mov	edx, 0
.L212:
	mov	ebx, edx
	mov	edx, 0
	div	ebx
	mov	edx, eax
	mov	eax, DWORD PTR -1624[rbp]
	cmp	edx, eax
	jne	.L213
	mov	DWORD PTR -3356[rbp], 1
	mov	edi, 353
	call	step_hash
	mov	DWORD PTR -3672[rbp], 0
	jmp	.L214
.L217:
	mov	edi, 350
	call	step_hash
	mov	rax, QWORD PTR -2976[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	eax, DWORD PTR -1628[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR -3356[rbp]
	movzx	eax, al
	imul	eax, edx
	cmp	BYTE PTR -3884[rbp], 0
	je	.L215
	cmp	BYTE PTR -3884[rbp], 0
	je	.L215
	mov	edx, 1
	jmp	.L216
.L215:
	mov	edx, 0
.L216:
	cmp	edx, eax
	setge	al
	movzx	eax, al
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 351
	call	step_hash
	movzx	edx, BYTE PTR -3884[rbp]
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 352
	call	step_hash
	movzx	eax, WORD PTR -3832[rbp]
	add	eax, 1
	mov	WORD PTR -3832[rbp], ax
	sub	DWORD PTR -3672[rbp], 1
.L214:
	cmp	DWORD PTR -3672[rbp], -5
	jl	.L217
	jmp	.L235
.L213:
	mov	WORD PTR -3820[rbp], -1532
	mov	DWORD PTR -3412[rbp], -1
	mov	DWORD PTR -3408[rbp], -1438396269
	mov	DWORD PTR -3404[rbp], -1353533123
	mov	DWORD PTR -3400[rbp], -1
	mov	edi, 355
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	lea	rdx, -1632[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 356
	call	step_hash
	movsx	eax, BYTE PTR -3880[rbp]
	or	DWORD PTR -3416[rbp], eax
	mov	edi, 364
	call	step_hash
	mov	DWORD PTR -3588[rbp], -1
	jmp	.L219
.L221:
	mov	BYTE PTR -3849[rbp], 37
	mov	DWORD PTR -3396[rbp], 387753444
	mov	DWORD PTR -3392[rbp], -1
	mov	DWORD PTR -3388[rbp], 9
	mov	DWORD PTR -3384[rbp], 770712911
	mov	DWORD PTR -3380[rbp], 1
	mov	DWORD PTR -3376[rbp], 1394219145
	mov	DWORD PTR -3372[rbp], 1
	mov	DWORD PTR -3368[rbp], 1924220933
	mov	DWORD PTR -3364[rbp], -1112606798
	mov	DWORD PTR -3360[rbp], 8
	mov	edi, 360
	call	step_hash
	movzx	eax, BYTE PTR -3849[rbp]
	add	eax, 1
	mov	BYTE PTR -3849[rbp], al
	mov	edi, 361
	call	step_hash
	cmp	BYTE PTR -3880[rbp], 0
	jne	.L404
	mov	edi, 362
	call	step_hash
	add	DWORD PTR -3668[rbp], 1
	mov	edi, 363
	call	step_hash
	add	DWORD PTR -3608[rbp], 1
	add	DWORD PTR -3588[rbp], 1
.L219:
	cmp	DWORD PTR -3588[rbp], 23
	jle	.L221
	jmp	.L235
.L172:
	mov	DWORD PTR -3648[rbp], 0
	jmp	.L222
.L223:
	mov	eax, DWORD PTR -3648[rbp]
	cdqe
	lea	rdx, -3792[rbp]
	mov	QWORD PTR -1808[rbp+rax*8], rdx
	add	DWORD PTR -3648[rbp], 1
.L222:
	cmp	DWORD PTR -3648[rbp], 4
	jle	.L223
	mov	edi, 368
	call	step_hash
	mov	rax, QWORD PTR -3080[rbp]
	mov	rdx, QWORD PTR -1784[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 395
	call	step_hash
	mov	rax, QWORD PTR -2408[rbp]
	test	rax, rax
	setne	al
	movzx	edx, al
	movzx	eax, WORD PTR g_670[rip]
	movzx	ecx, ax
	mov	eax, DWORD PTR g_578[rip]
	movzx	eax, ax
	imul	eax, ecx
	cmp	edx, eax
	jg	.L224
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1632[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1624[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1616[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1608[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1600[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1592[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1584[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1576[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1568[rbp], rax
	mov	edi, 370
	call	step_hash
	mov	rax, QWORD PTR -2976[rbp]
	mov	esi, DWORD PTR [rax]
	mov	eax, DWORD PTR -3876[rbp]
	sar	ax, 3
	mov	ecx, eax
	mov	rax, QWORD PTR g_677[rip]
	test	rax, rax
	sete	al
	movzx	eax, al
	mov	edx, eax
	mov	eax, ecx
	imul	eax, edx
	movsx	edx, al
	mov	rcx, QWORD PTR -1616[rbp]
	mov	rax, QWORD PTR -1784[rbp]
	cmp	rcx, rax
	sete	al
	movzx	eax, al
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	or	esi, eax
	mov	edx, esi
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 382
	call	step_hash
	mov	DWORD PTR g_363[rip], -23
	jmp	.L225
.L227:
	mov	DWORD PTR -3476[rbp], -262404647
	mov	edi, 374
	call	step_hash
	mov	eax, DWORD PTR g_681[rip+72]
	mov	DWORD PTR -3476[rbp], eax
	mov	edi, 380
	call	step_hash
	mov	DWORD PTR -3580[rbp], -29
	cmp	DWORD PTR -3580[rbp], 7
	ja	.L226
	mov	QWORD PTR -2960[rbp], 0
	mov	edi, 378
	call	step_hash
	mov	rax, QWORD PTR -2976[rbp]
	mov	eax, DWORD PTR [rax]
	or	eax, DWORD PTR -3476[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 379
	call	step_hash
	mov	rax, QWORD PTR -2960[rbp]
	jmp	.L399
.L226:
	mov	edi, 381
	call	step_hash
	mov	edx, DWORD PTR -3496[rbp]
	mov	rax, QWORD PTR -2976[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR g_363[rip]
	add	eax, 3
	mov	DWORD PTR g_363[rip], eax
.L225:
	mov	eax, DWORD PTR g_363[rip]
	cmp	eax, 54
	ja	.L227
	jmp	.L228
.L224:
	mov	DWORD PTR -1632[rbp], -6
	mov	DWORD PTR -1628[rbp], -6
	mov	DWORD PTR -1624[rbp], 1
	mov	DWORD PTR -1620[rbp], -6
	mov	DWORD PTR -1616[rbp], -6
	mov	DWORD PTR -1612[rbp], 1
	mov	edi, 384
	call	step_hash
	mov	eax, DWORD PTR -1612[rbp]
	sub	eax, 1
	mov	DWORD PTR -1612[rbp], eax
	mov	edi, 385
	call	step_hash
	mov	WORD PTR g_627[rip], 0
	jmp	.L229
.L230:
	movzx	eax, WORD PTR g_627[rip]
	movzx	eax, ax
	cdqe
	mov	QWORD PTR -2464[rbp+rax*8], 0
	movzx	eax, WORD PTR g_627[rip]
	add	eax, 1
	mov	WORD PTR g_627[rip], ax
.L229:
	movzx	eax, WORD PTR g_627[rip]
	cmp	ax, 4
	jbe	.L230
	mov	edi, 394
	call	step_hash
	mov	WORD PTR -3834[rbp], 0
	jmp	.L231
.L234:
	mov	QWORD PTR -2968[rbp], 0
	mov	DWORD PTR -3644[rbp], 1
	mov	edi, 393
	call	step_hash
	mov	DWORD PTR -3800[rbp], 4
	jmp	.L232
.L233:
	mov	edi, 392
	call	step_hash
	movzx	ecx, BYTE PTR -3884[rbp]
	movzx	edx, BYTE PTR -3884[rbp]
	cmp	QWORD PTR -2968[rbp], 0
	sete	al
	movzx	eax, al
	cmp	edx, eax
	setg	al
	movzx	eax, al
	xor	eax, ecx
	and	DWORD PTR -3644[rbp], eax
	mov	eax, DWORD PTR -3800[rbp]
	sub	eax, 1
	mov	DWORD PTR -3800[rbp], eax
.L232:
	mov	eax, DWORD PTR -3800[rbp]
	test	eax, eax
	jns	.L233
	movzx	eax, WORD PTR -3834[rbp]
	add	eax, 1
	mov	WORD PTR -3834[rbp], ax
.L231:
	cmp	WORD PTR -3834[rbp], 4
	jle	.L234
.L228:
	mov	edi, 396
	call	step_hash
	add	DWORD PTR -3492[rbp], 1
	jmp	.L235
.L130:
	mov	WORD PTR -3826[rbp], 3
	mov	DWORD PTR -3552[rbp], -1
	mov	DWORD PTR -3548[rbp], 154431245
	mov	DWORD PTR -3772[rbp], -4
	mov	DWORD PTR -3544[rbp], 1
	mov	DWORD PTR -3640[rbp], 0
	jmp	.L237
.L240:
	mov	DWORD PTR -3636[rbp], 0
	jmp	.L238
.L239:
	mov	eax, DWORD PTR -3636[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3640[rbp]
	cdqe
	add	rax, rax
	add	rax, rdx
	mov	DWORD PTR -2176[rbp+rax*4], 1858597141
	add	DWORD PTR -3636[rbp], 1
.L238:
	cmp	DWORD PTR -3636[rbp], 1
	jle	.L239
	add	DWORD PTR -3640[rbp], 1
.L237:
	cmp	DWORD PTR -3640[rbp], 6
	jle	.L240
	mov	DWORD PTR -3640[rbp], 0
	jmp	.L241
.L242:
	mov	eax, DWORD PTR -3640[rbp]
	cdqe
	lea	rdx, -2176[rbp]
	add	rdx, 20
	mov	QWORD PTR -2080[rbp+rax*8], rdx
	add	DWORD PTR -3640[rbp], 1
.L241:
	cmp	DWORD PTR -3640[rbp], 6
	jle	.L242
	mov	DWORD PTR -3640[rbp], 0
	jmp	.L243
.L244:
	mov	eax, DWORD PTR -3640[rbp]
	cdqe
	mov	DWORD PTR -2464[rbp+rax*4], 1
	add	DWORD PTR -3640[rbp], 1
.L243:
	cmp	DWORD PTR -3640[rbp], 0
	jle	.L244
	mov	edi, 454
	call	step_hash
	cmp	WORD PTR -3828[rbp], 0
	je	.L245
	lea	rax, -3792[rbp]
	mov	QWORD PTR -2984[rbp], rax
	mov	edi, 400
	call	step_hash
	mov	rax, QWORD PTR -3080[rbp]
	mov	rax, QWORD PTR [rax]
	jmp	.L399
.L245:
	mov	DWORD PTR -3540[rbp], 5
	mov	DWORD PTR -3536[rbp], -1393683415
	mov	DWORD PTR -3532[rbp], -963775954
	mov	DWORD PTR -3768[rbp], -1
	mov	DWORD PTR -3528[rbp], 1
	mov	DWORD PTR -3524[rbp], -1527695310
	mov	DWORD PTR -2320[rbp], 1
	mov	DWORD PTR -2316[rbp], -2057229603
	mov	DWORD PTR -2312[rbp], 0
	mov	DWORD PTR -2308[rbp], 1
	mov	DWORD PTR -2304[rbp], -2057229603
	mov	DWORD PTR -2300[rbp], 0
	mov	DWORD PTR -2296[rbp], 1
	mov	DWORD PTR -2292[rbp], -2057229603
	mov	DWORD PTR -2288[rbp], 0
	mov	DWORD PTR -2284[rbp], 1
	mov	DWORD PTR -2280[rbp], -2057229603
	mov	DWORD PTR -2276[rbp], 0
	mov	DWORD PTR -3520[rbp], -638861799
	lea	rax, -2320[rbp]
	add	rax, 36
	mov	QWORD PTR -1808[rbp], rax
	lea	rax, -2320[rbp]
	add	rax, 36
	mov	QWORD PTR -1800[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1792[rbp], rax
	lea	rax, -2320[rbp]
	add	rax, 36
	mov	QWORD PTR -1784[rbp], rax
	lea	rax, -2320[rbp]
	add	rax, 36
	mov	QWORD PTR -1776[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -1768[rbp], rax
	lea	rax, -2320[rbp]
	add	rax, 36
	mov	QWORD PTR -1760[rbp], rax
	lea	rax, -2320[rbp]
	add	rax, 36
	mov	QWORD PTR -1752[rbp], rax
	mov	edi, 453
	call	step_hash
	cmp	WORD PTR -3826[rbp], 1
	je	.L247
	mov	eax, DWORD PTR g_2[rip]
	movsx	edx, al
	movzx	eax, BYTE PTR -3884[rbp]
	movsx	eax, al
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	mov	ecx, eax
	movsx	ebx, BYTE PTR -3880[rbp]
	mov	eax, 56632
	mov	edx, 0
	div	ebx
	cmp	cx, ax
	je	.L247
	mov	eax, 1
	jmp	.L248
.L247:
	mov	eax, 0
.L248:
	cmp	eax, 1669
	setle	al
	movzx	edx, al
	mov	eax, DWORD PTR g_64[rip]
	cmp	edx, eax
	setg	al
	movzx	edx, al
	mov	eax, DWORD PTR -3540[rbp]
	or	eax, edx
	movzx	edx, ax
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, ax
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	test	eax, eax
	je	.L249
	lea	rax, g_215[rip+152]
	mov	QWORD PTR -3000[rbp], rax
	mov	DWORD PTR -3516[rbp], 79870500
	mov	DWORD PTR -3512[rbp], -10
	mov	DWORD PTR -3508[rbp], 163232038
	mov	DWORD PTR -3632[rbp], 0
	jmp	.L250
.L251:
	mov	eax, DWORD PTR -3632[rbp]
	cdqe
	mov	DWORD PTR -2416[rbp+rax*4], 7
	add	DWORD PTR -3632[rbp], 1
.L250:
	cmp	DWORD PTR -3632[rbp], 0
	jle	.L251
	mov	edi, 431
	call	step_hash
	lea	rax, g_215[rip+224]
	cmp	QWORD PTR -3000[rbp], rax
	sete	al
	movzx	edx, al
	mov	eax, DWORD PTR g_64[rip]
	add	eax, edx
	cwde
	mov	edi, eax
	call	func_59
	movsx	edx, BYTE PTR -3880[rbp]
	cmp	eax, edx
	setbe	al
	movzx	ecx, al
	movzx	eax, BYTE PTR g_319[rip]
	cbw
	movzx	eax, ax
	movzx	ebx, BYTE PTR -3884[rbp]
	cdq
	idiv	ebx
	cwde
	mov	esi, 0
	cdq
	idiv	esi
	mov	eax, edx
	cmp	ecx, eax
	setne	al
	movzx	edx, al
	movsx	eax, BYTE PTR -3880[rbp]
	cmp	edx, eax
	jle	.L252
	mov	QWORD PTR -2992[rbp], 0
	mov	DWORD PTR -3500[rbp], 8
	mov	DWORD PTR -3628[rbp], 0
	jmp	.L253
.L254:
	mov	eax, DWORD PTR -3628[rbp]
	cdqe
	lea	rdx, g_64[rip]
	mov	QWORD PTR -1632[rbp+rax*8], rdx
	add	DWORD PTR -3628[rbp], 1
.L253:
	cmp	DWORD PTR -3628[rbp], 8
	jle	.L254
	mov	edi, 404
	call	step_hash
	add	DWORD PTR -3556[rbp], 1
	mov	edi, 409
	call	step_hash
	mov	DWORD PTR -3788[rbp], 0
	jmp	.L255
.L256:
	mov	BYTE PTR -3853[rbp], -1
	mov	edi, 408
	call	step_hash
	add	BYTE PTR -3853[rbp], 1
	mov	eax, DWORD PTR -3788[rbp]
	sub	eax, 1
	mov	DWORD PTR -3788[rbp], eax
.L255:
	mov	eax, DWORD PTR -3788[rbp]
	test	eax, eax
	jns	.L256
	mov	edi, 418
	call	step_hash
	mov	eax, DWORD PTR -2284[rbp]
	test	eax, eax
	je	.L257
	mov	BYTE PTR -3854[rbp], -122
	mov	edi, 411
	call	step_hash
	movzx	edx, BYTE PTR -3854[rbp]
	mov	eax, DWORD PTR -3796[rbp]
	and	eax, edx
	mov	DWORD PTR -3796[rbp], eax
	mov	edi, 412
	call	step_hash
	mov	rax, QWORD PTR -3080[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -2056[rbp], rax
	mov	edi, 413
	call	step_hash
	movzx	edx, BYTE PTR -3854[rbp]
	movsx	eax, BYTE PTR -3880[rbp]
	cmp	edx, eax
	setne	al
	movzx	ebx, al
	mov	r12d, DWORD PTR g_681[rip+52]
	movzx	eax, WORD PTR g_670[rip]
	test	ax, ax
	jne	.L258
	mov	eax, DWORD PTR g_363[rip]
	test	eax, eax
	je	.L259
.L258:
	mov	eax, 1
	jmp	.L260
.L259:
	mov	eax, 0
.L260:
	shr	ax, 9
	test	ax, ax
	setne	al
	movzx	r13d, al
	mov	r14d, DWORD PTR g_681[rip+72]
	mov	eax, DWORD PTR -3540[rbp]
	cwde
	mov	edi, eax
	call	func_59
	cmp	r14d, eax
	setnb	al
	movzx	eax, al
	mov	edi, eax
	call	func_59
	cmp	eax, 137
	sete	al
	movzx	edx, al
	mov	eax, DWORD PTR g_578[rip]
	and	eax, edx
	mov	edx, eax
	mov	eax, DWORD PTR g_681[rip+32]
	cmp	edx, eax
	setbe	al
	movzx	eax, al
	movsx	edx, BYTE PTR -3880[rbp]
	sub	eax, edx
	cmp	r13d, eax
	setle	al
	movzx	eax, al
	cmp	r12d, eax
	setb	al
	movzx	eax, al
	cmp	ebx, eax
	setle	al
	movzx	edx, al
	mov	eax, DWORD PTR g_578[rip]
	cwde
	add	edx, eax
	mov	eax, DWORD PTR g_760[rip]
	xor	eax, edx
	mov	DWORD PTR g_760[rip], eax
	mov	edi, 414
	call	step_hash
	jmp	.L262
.L257:
	mov	edi, 416
	call	step_hash
	mov	edx, DWORD PTR -2464[rbp]
	mov	eax, DWORD PTR -3500[rbp]
	and	eax, edx
	mov	DWORD PTR -3500[rbp], eax
	mov	edi, 417
	call	step_hash
	mov	DWORD PTR -2416[rbp], 1764895908
	jmp	.L262
.L252:
	mov	edi, 424
	call	step_hash
	mov	BYTE PTR -3884[rbp], -15
	jmp	.L263
.L268:
	mov	DWORD PTR -3624[rbp], 0
	jmp	.L264
.L267:
	mov	DWORD PTR -3620[rbp], 0
	jmp	.L265
.L266:
	mov	eax, DWORD PTR -3620[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3624[rbp]
	cdqe
	add	rax, rdx
	mov	DWORD PTR -1632[rbp+rax*4], -652105599
	add	DWORD PTR -3620[rbp], 1
.L265:
	cmp	DWORD PTR -3620[rbp], 0
	jle	.L266
	add	DWORD PTR -3624[rbp], 1
.L264:
	cmp	DWORD PTR -3624[rbp], 8
	jle	.L267
	mov	edi, 423
	call	step_hash
	mov	eax, DWORD PTR -1620[rbp]
	and	eax, 1
	mov	DWORD PTR -1620[rbp], eax
	movzx	eax, BYTE PTR -3884[rbp]
	add	eax, 1
	mov	BYTE PTR -3884[rbp], al
.L263:
	cmp	BYTE PTR -3884[rbp], 53
	ja	.L268
	mov	edi, 425
	call	step_hash
	movzx	edx, BYTE PTR -3884[rbp]
	mov	eax, DWORD PTR g_363[rip]
	cmp	eax, 1
	seta	al
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	DWORD PTR -3516[rbp], eax
	mov	edi, 430
	call	step_hash
	mov	DWORD PTR -3592[rbp], 0
	jmp	.L269
.L270:
	mov	DWORD PTR -3504[rbp], -1026626758
	mov	edi, 429
	call	step_hash
	movsx	eax, BYTE PTR -3880[rbp]
	and	DWORD PTR -3504[rbp], eax
	add	DWORD PTR -3592[rbp], 1
.L269:
	cmp	DWORD PTR -3592[rbp], 6
	jbe	.L270
.L262:
	mov	edi, 432
	call	step_hash
	mov	rdx, QWORD PTR g_214[rip]
	mov	rax, QWORD PTR -3080[rbp]
	mov	rdx, QWORD PTR [rdx]
	mov	QWORD PTR [rax], rdx
	jmp	.L235
.L249:
	mov	DWORD PTR -3764[rbp], -923527861
	lea	rax, -3080[rbp]
	mov	QWORD PTR -1632[rbp], rax
	lea	rax, -3080[rbp]
	mov	QWORD PTR -1624[rbp], rax
	lea	rax, g_677[rip]
	mov	QWORD PTR -1616[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -1608[rbp], rax
	lea	rax, -3080[rbp]
	mov	QWORD PTR -1600[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -1592[rbp], rax
	lea	rax, g_677[rip]
	mov	QWORD PTR -1584[rbp], rax
	lea	rax, -3080[rbp]
	mov	QWORD PTR -1576[rbp], rax
	lea	rax, -3080[rbp]
	mov	QWORD PTR -1568[rbp], rax
	lea	rax, g_677[rip]
	mov	QWORD PTR -1560[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -1552[rbp], rax
	lea	rax, -3080[rbp]
	mov	QWORD PTR -1544[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -1536[rbp], rax
	lea	rax, g_677[rip]
	mov	QWORD PTR -1528[rbp], rax
	mov	edi, 445
	call	step_hash
	mov	BYTE PTR -3857[rbp], 0
	jmp	.L272
.L279:
	mov	edi, 437
	call	step_hash
	mov	DWORD PTR -3572[rbp], 0
	jmp	.L273
.L276:
	mov	DWORD PTR g_145[rip], 0
	jmp	.L274
.L275:
	mov	eax, DWORD PTR g_145[rip]
	mov	ecx, eax
	mov	eax, DWORD PTR -3572[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, [rax+rcx]
	lea	rax, g_178[rip]
	add	rax, rdx
	mov	BYTE PTR [rax], 1
	mov	eax, DWORD PTR g_145[rip]
	add	eax, 1
	mov	DWORD PTR g_145[rip], eax
.L274:
	mov	eax, DWORD PTR g_145[rip]
	cmp	eax, 4
	jbe	.L275
	add	DWORD PTR -3572[rbp], 1
.L273:
	cmp	DWORD PTR -3572[rbp], 3
	jle	.L276
	mov	edi, 438
	call	step_hash
	xor	DWORD PTR -3764[rbp], 2122286825
	mov	edi, 443
	call	step_hash
	mov	DWORD PTR -3580[rbp], 0
	jmp	.L277
.L278:
	mov	edi, 442
	call	step_hash
	mov	eax, DWORD PTR -3580[rbp]
	lea	esi, 3[rax]
	mov	eax, DWORD PTR -3580[rbp]
	add	eax, 1
	mov	rdx, QWORD PTR -3080[rbp]
	lea	rcx, -2320[rbp]
	mov	edi, eax
	mov	esi, esi
	mov	rax, rsi
	add	rax, rax
	add	rax, rsi
	add	rax, rdi
	sal	rax, 2
	add	rax, rcx
	mov	QWORD PTR [rdx], rax
	add	DWORD PTR -3580[rbp], 1
.L277:
	cmp	DWORD PTR -3580[rbp], 0
	je	.L278
	mov	edi, 444
	call	step_hash
	lea	rax, -3772[rbp]
	mov	QWORD PTR -1808[rbp], rax
	add	BYTE PTR -3857[rbp], 7
.L272:
	cmp	BYTE PTR -3857[rbp], 7
	ja	.L279
	mov	edi, 446
	call	step_hash
	lea	rax, -1808[rbp]
	mov	QWORD PTR -3080[rbp], rax
	mov	edi, 452
	call	step_hash
	mov	DWORD PTR -3772[rbp], -30
	nop
	mov	eax, DWORD PTR -3772[rbp]
	cmp	eax, 14
	jg	.L235
	lea	rax, g_578[rip]
	mov	QWORD PTR -3008[rbp], rax
	mov	edi, 450
	call	step_hash
	mov	rax, QWORD PTR -3008[rbp]
	mov	QWORD PTR -2032[rbp], rax
	mov	edi, 451
	call	step_hash
	mov	rax, QWORD PTR -3008[rbp]
	jmp	.L399
.L404:
	nop
.L235:
	mov	edi, 532
	call	step_hash
	cmp	BYTE PTR -3857[rbp], 0
	je	.L282
	mov	WORD PTR -3838[rbp], -5
	mov	DWORD PTR -2176[rbp], -8
	mov	DWORD PTR -2172[rbp], -1750104537
	mov	DWORD PTR -2168[rbp], 1
	mov	DWORD PTR -2164[rbp], -8
	mov	DWORD PTR -2160[rbp], -1750104537
	mov	DWORD PTR -2156[rbp], 1
	mov	DWORD PTR -2152[rbp], -8
	mov	DWORD PTR -2148[rbp], -1750104537
	mov	DWORD PTR -2144[rbp], 1
	mov	DWORD PTR -2140[rbp], -8
	mov	DWORD PTR -2136[rbp], -1750104537
	mov	DWORD PTR -2132[rbp], 1
	mov	DWORD PTR -2128[rbp], -8
	mov	DWORD PTR -2124[rbp], -1750104537
	mov	DWORD PTR -2120[rbp], 1
	mov	DWORD PTR -2116[rbp], -8
	mov	DWORD PTR -2112[rbp], -1750104537
	mov	DWORD PTR -2108[rbp], 1
	mov	DWORD PTR -2104[rbp], -8
	mov	DWORD PTR -2100[rbp], -1750104537
	mov	DWORD PTR -2096[rbp], 1
	mov	DWORD PTR -2080[rbp], -1
	mov	DWORD PTR -2076[rbp], 1676148460
	mov	DWORD PTR -2072[rbp], 1
	mov	DWORD PTR -2068[rbp], -1681344761
	mov	DWORD PTR -2064[rbp], 1
	mov	DWORD PTR -2060[rbp], 1676148460
	mov	DWORD PTR -2056[rbp], -1
	mov	DWORD PTR -2052[rbp], -1148108054
	mov	DWORD PTR -2048[rbp], -1
	mov	DWORD PTR -2044[rbp], 1676148460
	mov	DWORD PTR -2040[rbp], 1
	mov	DWORD PTR -2036[rbp], -1681344761
	mov	DWORD PTR -2032[rbp], 1
	mov	DWORD PTR -2028[rbp], 1676148460
	mov	DWORD PTR -2024[rbp], -1
	mov	DWORD PTR -2020[rbp], -1148108054
	mov	DWORD PTR -2016[rbp], -1
	mov	DWORD PTR -2012[rbp], 1676148460
	mov	DWORD PTR -2008[rbp], 1
	mov	DWORD PTR -2004[rbp], -1681344761
	mov	DWORD PTR -2000[rbp], 1
	mov	DWORD PTR -1996[rbp], 1676148460
	mov	DWORD PTR -1992[rbp], -1
	mov	DWORD PTR -1988[rbp], -1148108054
	mov	DWORD PTR -1984[rbp], -1
	mov	DWORD PTR -1980[rbp], 1676148460
	mov	DWORD PTR -1976[rbp], 1
	mov	DWORD PTR -1972[rbp], -1681344761
	mov	DWORD PTR -1968[rbp], 1
	mov	DWORD PTR -1964[rbp], 1676148460
	mov	DWORD PTR -1960[rbp], -1
	mov	DWORD PTR -1956[rbp], -1148108054
	mov	WORD PTR -3810[rbp], -6
	mov	DWORD PTR -3784[rbp], 991482720
	mov	DWORD PTR -3760[rbp], 0
	lea	rax, g_677[rip]
	mov	QWORD PTR -2912[rbp], rax
	lea	rax, -3792[rbp]
	mov	QWORD PTR -2904[rbp], rax
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2896[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -2888[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -1808[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1800[rbp], rax
	mov	QWORD PTR -1792[rbp], 0
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -1784[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1776[rbp], rax
	mov	QWORD PTR -1768[rbp], 0
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -1760[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1752[rbp], rax
	mov	QWORD PTR -1744[rbp], 0
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -1736[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1728[rbp], rax
	mov	QWORD PTR -1720[rbp], 0
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -1712[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1704[rbp], rax
	mov	QWORD PTR -1696[rbp], 0
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -1688[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1680[rbp], rax
	mov	QWORD PTR -1672[rbp], 0
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -1664[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1656[rbp], rax
	mov	QWORD PTR -1648[rbp], 0
	mov	edi, 529
	call	step_hash
	movzx	eax, BYTE PTR -3880[rbp]
	movzx	edx, al
	movzx	eax, BYTE PTR g_178[rip+4]
	movzx	eax, al
	add	eax, edx
	test	eax, eax
	je	.L283
	mov	QWORD PTR -2792[rbp], 0
	mov	DWORD PTR -3132[rbp], -579286291
	mov	DWORD PTR -3128[rbp], 0
	mov	DWORD PTR -3756[rbp], -1093760992
	mov	DWORD PTR -3124[rbp], 0
	mov	DWORD PTR -2416[rbp], -1237442234
	mov	DWORD PTR -2412[rbp], -1237442234
	mov	DWORD PTR -2408[rbp], -1237442234
	mov	DWORD PTR -2404[rbp], -1237442234
	mov	DWORD PTR -2400[rbp], -1237442234
	mov	DWORD PTR -2396[rbp], -1237442234
	mov	DWORD PTR -2392[rbp], -1237442234
	mov	DWORD PTR -2388[rbp], -1237442234
	mov	DWORD PTR -2384[rbp], -1237442234
	mov	DWORD PTR -2380[rbp], -1237442234
	mov	DWORD PTR -3120[rbp], -3
	mov	edi, 495
	call	step_hash
	mov	DWORD PTR -3584[rbp], 0
	jmp	.L284
.L316:
	mov	BYTE PTR -3841[rbp], 3
	mov	DWORD PTR -46[rbp], 654386945
	mov	WORD PTR -42[rbp], 9985
	mov	DWORD PTR -3116[rbp], -2
	mov	DWORD PTR -3112[rbp], -958996905
	mov	DWORD PTR -3108[rbp], -1058537909
	mov	BYTE PTR -3860[rbp], -93
	mov	DWORD PTR -3768[rbp], 0
	mov	DWORD PTR -3104[rbp], 7
	mov	DWORD PTR -3100[rbp], -1
	mov	DWORD PTR -2528[rbp], 0
	mov	DWORD PTR -2524[rbp], -1
	mov	DWORD PTR -2520[rbp], 0
	mov	DWORD PTR -2516[rbp], -1
	mov	DWORD PTR -2512[rbp], 0
	mov	DWORD PTR -2508[rbp], -1
	mov	DWORD PTR -2504[rbp], 0
	mov	DWORD PTR -2500[rbp], -1
	mov	WORD PTR -3808[rbp], -1
	mov	DWORD PTR -3752[rbp], -1348913012
	mov	DWORD PTR -3748[rbp], 0
	jmp	.L285
.L288:
	mov	DWORD PTR -3744[rbp], 0
	jmp	.L286
.L287:
	mov	eax, DWORD PTR -3744[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3748[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	DWORD PTR -2560[rbp+rax*4], 3
	add	DWORD PTR -3744[rbp], 1
.L286:
	cmp	DWORD PTR -3744[rbp], 3
	jle	.L287
	add	DWORD PTR -3748[rbp], 1
.L285:
	cmp	DWORD PTR -3748[rbp], 1
	jle	.L288
	mov	DWORD PTR -3748[rbp], 0
	jmp	.L289
.L290:
	mov	eax, DWORD PTR -3748[rbp]
	cdqe
	lea	rdx, -3768[rbp]
	mov	QWORD PTR -2320[rbp+rax*8], rdx
	add	DWORD PTR -3748[rbp], 1
.L289:
	cmp	DWORD PTR -3748[rbp], 4
	jle	.L290
	mov	edi, 461
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	movsx	edx, ax
	mov	eax, DWORD PTR g_681[rip+72]
	mov	ecx, eax
	movzx	eax, BYTE PTR -3855[rbp]
	mov	rbx, QWORD PTR g_214[rip]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	mov	edi, 469
	call	step_hash
	mov	DWORD PTR -3568[rbp], 0
	jmp	.L291
.L294:
	mov	WORD PTR -3806[rbp], -14397
	lea	rax, g_214[rip]
	mov	QWORD PTR -2712[rbp], rax
	mov	edi, 465
	call	step_hash
	movzx	eax, WORD PTR -3806[rbp]
	add	eax, 1
	mov	WORD PTR -3806[rbp], ax
	mov	edi, 466
	call	step_hash
	mov	eax, DWORD PTR -3568[rbp]
	lea	edx, 1[rax]
	mov	eax, DWORD PTR -3568[rbp]
	add	eax, 4
	movsx	rcx, eax
	movsx	rdx, edx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	add	rax, rcx
	mov	eax, DWORD PTR -1952[rbp+rax*4]
	test	eax, eax
	jne	.L405
	mov	edi, 467
	call	step_hash
	mov	DWORD PTR -2136[rbp], -10
	mov	edi, 468
	call	step_hash
	mov	rax, QWORD PTR -2712[rbp]
	lea	rdx, g_215[rip+88]
	mov	QWORD PTR [rax], rdx
	jmp	.L293
.L405:
	nop
.L293:
	add	DWORD PTR -3568[rbp], 1
.L291:
	cmp	DWORD PTR -3568[rbp], 0
	jle	.L294
	mov	edi, 494
	call	step_hash
	mov	BYTE PTR g_319[rip], 4
	jmp	.L295
.L315:
	lea	rax, g_677[rip]
	mov	QWORD PTR -2784[rbp], rax
	mov	DWORD PTR -3096[rbp], 127058811
	lea	rax, -3792[rbp]
	mov	QWORD PTR -2776[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 40
	mov	QWORD PTR -2768[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -2760[rbp], rax
	mov	QWORD PTR -2752[rbp], 0
	mov	DWORD PTR -3740[rbp], 0
	jmp	.L296
.L297:
	mov	eax, DWORD PTR -3740[rbp]
	cdqe
	mov	DWORD PTR -2496[rbp+rax*4], -10
	add	DWORD PTR -3740[rbp], 1
.L296:
	cmp	DWORD PTR -3740[rbp], 7
	jle	.L297
	mov	DWORD PTR -3740[rbp], 0
	jmp	.L298
.L301:
	mov	DWORD PTR -3736[rbp], 0
	jmp	.L299
.L300:
	mov	eax, DWORD PTR -3736[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3740[rbp]
	cdqe
	sal	rax, 2
	add	rax, rdx
	mov	QWORD PTR -1632[rbp+rax*8], 0
	add	DWORD PTR -3736[rbp], 1
.L299:
	cmp	DWORD PTR -3736[rbp], 3
	jle	.L300
	add	DWORD PTR -3740[rbp], 1
.L298:
	cmp	DWORD PTR -3740[rbp], 2
	jle	.L301
	mov	edi, 482
	call	step_hash
	movzx	eax, BYTE PTR g_319[rip]
	movsx	eax, al
	add	eax, 1
	movsx	rcx, eax
	mov	edx, DWORD PTR -3584[rbp]
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rax
	add	rax, rcx
	mov	eax, DWORD PTR -1952[rbp+rax*4]
	movzx	ecx, BYTE PTR -3841[rbp]
	cmp	QWORD PTR -2784[rbp], 0
	sete	dl
	movzx	edx, dl
	xor	edx, ecx
	cmp	eax, edx
	jl	.L302
	mov	QWORD PTR -2728[rbp], 0
	lea	rax, -2176[rbp]
	add	rax, 28
	mov	QWORD PTR -2720[rbp], rax
	mov	edi, 474
	call	step_hash
	mov	edx, DWORD PTR -3876[rbp]
	mov	rax, QWORD PTR -2720[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 475
	call	step_hash
	mov	rax, QWORD PTR -2720[rbp]
	mov	DWORD PTR [rax], 0
	mov	edi, 476
	call	step_hash
	mov	rax, QWORD PTR -2720[rbp]
	mov	edx, DWORD PTR [rax]
	movsx	eax, BYTE PTR -3880[rbp]
	cmp	edx, eax
	setl	al
	movzx	edx, al
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, ax
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	mov	DWORD PTR -3116[rbp], eax
	jmp	.L303
.L302:
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -2744[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 28
	mov	QWORD PTR -2736[rbp], rax
	mov	DWORD PTR -2464[rbp], 0
	mov	DWORD PTR -2460[rbp], 0
	mov	DWORD PTR -2456[rbp], 2043159851
	mov	DWORD PTR -2452[rbp], 0
	mov	DWORD PTR -2448[rbp], 0
	mov	DWORD PTR -2444[rbp], 2043159851
	mov	DWORD PTR -2440[rbp], 0
	mov	DWORD PTR -2436[rbp], 0
	mov	DWORD PTR -2432[rbp], 2043159851
	mov	DWORD PTR -3732[rbp], 0
	jmp	.L304
.L305:
	mov	eax, DWORD PTR -3732[rbp]
	cdqe
	lea	rdx, -2176[rbp]
	add	rdx, 40
	mov	QWORD PTR -2608[rbp+rax*8], rdx
	add	DWORD PTR -3732[rbp], 1
.L304:
	cmp	DWORD PTR -3732[rbp], 1
	jle	.L305
	mov	edi, 478
	call	step_hash
	mov	eax, DWORD PTR -2444[rbp]
	add	eax, 1
	mov	DWORD PTR -2444[rbp], eax
	mov	edi, 479
	call	step_hash
	mov	edx, DWORD PTR -2412[rbp]
	mov	eax, DWORD PTR -3108[rbp]
	cmp	DWORD PTR -3876[rbp], eax
	seta	al
	movzx	eax, al
	xor	eax, edx
	mov	DWORD PTR -2412[rbp], eax
	mov	edi, 480
	call	step_hash
	add	BYTE PTR -3860[rbp], 1
	mov	edi, 481
	call	step_hash
	sub	DWORD PTR -3760[rbp], 1
.L303:
	mov	edi, 483
	call	step_hash
	add	DWORD PTR -3752[rbp], 1
	mov	edi, 488
	call	step_hash
	cmp	BYTE PTR -3860[rbp], 0
	je	.L306
	mov	edi, 485
	call	step_hash
	mov	rax, QWORD PTR -2760[rbp]
	mov	DWORD PTR [rax], -489300055
	jmp	.L307
.L306:
	mov	edi, 487
	call	step_hash
	movsx	esi, WORD PTR -3810[rbp]
	movzx	eax, BYTE PTR g_319[rip]
	movsx	eax, al
	not	eax
	mov	edx, eax
	mov	eax, DWORD PTR g_145[rip]
	mov	eax, eax
	and	eax, 200
	test	rax, rax
	jne	.L308
	cmp	DWORD PTR -3876[rbp], 0
	je	.L309
.L308:
	mov	eax, 1
	jmp	.L310
.L309:
	mov	eax, 0
.L310:
	cmp	eax, edx
	sete	al
	movzx	edx, al
	movsx	eax, BYTE PTR -3880[rbp]
	cmp	edx, eax
	setge	al
	movzx	ecx, al
	cmp	DWORD PTR -3120[rbp], 207
	setg	al
	movzx	edx, al
	mov	eax, DWORD PTR g_64[rip]
	cmp	edx, eax
	setle	al
	movzx	edi, al
	mov	eax, DWORD PTR -3876[rbp]
	cmp	QWORD PTR -2784[rbp], 0
	je	.L311
	mov	r8d, -2
	jmp	.L312
.L311:
	mov	r8d, 0
.L312:
	cdq
	idiv	r8d
	mov	eax, edx
	cmp	edi, eax
	sete	al
	movzx	eax, al
	mov	rbx, QWORD PTR g_214[rip]
	mov	edx, esi
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
.L307:
	mov	edi, 493
	call	step_hash
	mov	DWORD PTR -3756[rbp], 4
	jmp	.L313
.L314:
	mov	edi, 492
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR -2320[rbp]
	mov	QWORD PTR [rax], rdx
	sub	DWORD PTR -3756[rbp], 1
.L313:
	cmp	DWORD PTR -3756[rbp], 0
	jns	.L314
	movzx	eax, BYTE PTR g_319[rip]
	sub	eax, 1
	mov	BYTE PTR g_319[rip], al
.L295:
	movzx	eax, BYTE PTR g_319[rip]
	test	al, al
	jns	.L315
	add	DWORD PTR -3584[rbp], 1
.L284:
	cmp	DWORD PTR -3584[rbp], 5
	jbe	.L316
	jmp	.L343
.L283:
	mov	DWORD PTR -3160[rbp], 786480073
	lea	rax, g_677[rip]
	mov	QWORD PTR -2880[rbp], rax
	mov	DWORD PTR -3728[rbp], 261108560
	mov	DWORD PTR -3780[rbp], 1604750524
	mov	DWORD PTR -3156[rbp], 9
	mov	DWORD PTR -3776[rbp], 1722351153
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2872[rbp], rax
	mov	DWORD PTR -3724[rbp], 0
	jmp	.L318
.L321:
	mov	DWORD PTR -3720[rbp], 0
	jmp	.L319
.L320:
	mov	eax, DWORD PTR -3720[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3724[rbp]
	cdqe
	add	rax, rdx
	mov	DWORD PTR -2416[rbp+rax*4], 1
	add	DWORD PTR -3720[rbp], 1
.L319:
	cmp	DWORD PTR -3720[rbp], 0
	jle	.L320
	add	DWORD PTR -3724[rbp], 1
.L318:
	cmp	DWORD PTR -3724[rbp], 5
	jle	.L321
	mov	DWORD PTR -3724[rbp], 0
	jmp	.L322
.L323:
	mov	eax, DWORD PTR -3724[rbp]
	cdqe
	lea	rdx, -3784[rbp]
	mov	QWORD PTR -2320[rbp+rax*8], rdx
	add	DWORD PTR -3724[rbp], 1
.L322:
	cmp	DWORD PTR -3724[rbp], 3
	jle	.L323
	mov	edi, 528
	call	step_hash
	mov	eax, DWORD PTR -3876[rbp]
	mov	esi, eax
	movzx	eax, WORD PTR g_73[rip]
	movzx	edx, ax
	mov	eax, DWORD PTR -3580[rbp]
	movzx	eax, ax
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	test	eax, eax
	je	.L324
	cmp	BYTE PTR -3880[rbp], 0
	je	.L325
	movzx	eax, WORD PTR g_670[rip]
	test	ax, ax
	je	.L325
	mov	eax, DWORD PTR -3876[rbp]
	mov	edx, eax
	movzx	eax, BYTE PTR -3884[rbp]
	cmp	dl, al
	je	.L325
	mov	eax, 1
	jmp	.L326
.L325:
	mov	eax, 0
.L326:
	mov	edx, eax
	mov	eax, DWORD PTR -3876[rbp]
	or	eax, edx
	cwde
	imul	eax, eax, -32406
	cmp	DWORD PTR -3876[rbp], eax
	sete	al
	movzx	eax, al
	mov	edx, eax
	mov	eax, DWORD PTR -3876[rbp]
	movzx	eax, al
	imul	eax, edx
	sal	eax, 3
	movzx	edx, ax
	movzx	eax, BYTE PTR g_319[rip]
	cbw
	movzx	eax, ax
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	test	eax, eax
	je	.L324
	mov	eax, 1
	jmp	.L327
.L324:
	mov	eax, 0
.L327:
	xor	eax, esi
	movsx	edx, al
	mov	eax, DWORD PTR -3160[rbp]
	movsx	eax, al
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	test	eax, eax
	je	.L328
	mov	DWORD PTR -3152[rbp], 0
	mov	DWORD PTR -3772[rbp], -1780926042
	mov	DWORD PTR -3768[rbp], 1371892162
	mov	DWORD PTR -3148[rbp], -638612266
	mov	DWORD PTR -3144[rbp], -1423997139
	mov	QWORD PTR -2840[rbp], 0
	lea	rax, -3800[rbp]
	mov	QWORD PTR -2832[rbp], rax
	mov	edi, 514
	call	step_hash
	mov	WORD PTR -3838[rbp], 0
	jmp	.L329
.L338:
	mov	DWORD PTR -3140[rbp], 667269931
	mov	DWORD PTR -2464[rbp], -6
	mov	DWORD PTR -2460[rbp], -1
	mov	DWORD PTR -2456[rbp], -6
	mov	DWORD PTR -2452[rbp], -1
	mov	edi, 501
	call	step_hash
	cmp	QWORD PTR -2880[rbp], 0
	setne	al
	movzx	eax, al
	or	DWORD PTR -3728[rbp], eax
	mov	edi, 506
	call	step_hash
	movsx	edx, BYTE PTR -3880[rbp]
	movsx	esi, BYTE PTR -3880[rbp]
	mov	eax, DWORD PTR -3152[rbp]
	mov	ecx, eax
	movzx	eax, BYTE PTR g_876[rip]
	add	ecx, eax
	mov	eax, DWORD PTR -3876[rbp]
	xor	eax, ecx
	movsx	eax, al
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	cmp	DWORD PTR -3152[rbp], eax
	setb	sil
	mov	rax, QWORD PTR -2912[rbp]
	mov	rcx, QWORD PTR [rax]
	mov	rax, QWORD PTR -2880[rbp]
	mov	rax, QWORD PTR [rax]
	cmp	rcx, rax
	sete	al
	xor	eax, esi
	movzx	eax, al
	cmp	edx, eax
	je	.L330
	lea	rax, -3772[rbp]
	mov	QWORD PTR -2824[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -2816[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1632[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1624[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1616[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1608[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1600[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1592[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1584[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1576[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1568[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1560[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1552[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1544[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1536[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1528[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1520[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1512[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1504[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1496[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1488[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1480[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1472[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1464[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1456[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1448[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1440[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1432[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1424[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1416[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1408[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1400[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1392[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1384[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1376[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1368[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1360[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1352[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1344[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1336[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1328[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1320[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -1312[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1304[rbp], rax
	lea	rax, -3784[rbp]
	mov	QWORD PTR -1296[rbp], rax
	lea	rax, -2176[rbp]
	add	rax, 60
	mov	QWORD PTR -1288[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1280[rbp], rax
	mov	DWORD PTR -3136[rbp], -14713621
	mov	edi, 503
	call	step_hash
	mov	eax, DWORD PTR g_891[rip]
	sub	eax, 1
	mov	DWORD PTR g_891[rip], eax
	mov	edi, 513
	call	step_hash
	mov	DWORD PTR g_145[rip], 0
	nop
	mov	eax, DWORD PTR g_145[rip]
	test	eax, eax
	je	.L336
	jmp	.L401
.L330:
	mov	DWORD PTR -3716[rbp], 0
	jmp	.L332
.L333:
	mov	eax, DWORD PTR -3716[rbp]
	cdqe
	lea	rdx, -2176[rbp]
	add	rdx, 40
	mov	QWORD PTR -1632[rbp+rax*8], rdx
	add	DWORD PTR -3716[rbp], 1
.L332:
	cmp	DWORD PTR -3716[rbp], 8
	jle	.L333
	mov	edi, 505
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	jmp	.L399
.L336:
	lea	rax, -3776[rbp]
	mov	QWORD PTR -2808[rbp], rax
	mov	QWORD PTR -2800[rbp], 0
	mov	edi, 510
	call	step_hash
	mov	rax, QWORD PTR -2808[rbp]
	mov	QWORD PTR -2840[rbp], rax
	mov	edi, 511
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	lea	rdx, -3768[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 512
	call	step_hash
	mov	rax, QWORD PTR -2800[rbp]
	jmp	.L399
.L401:
	add	WORD PTR -3838[rbp], 1
.L329:
	cmp	WORD PTR -3838[rbp], 5
	jbe	.L338
	jmp	.L343
.L328:
	mov	BYTE PTR -3842[rbp], 0
	lea	rax, -3776[rbp]
	mov	QWORD PTR -2864[rbp], rax
	mov	QWORD PTR -1632[rbp], 0
	mov	QWORD PTR -1624[rbp], 0
	mov	QWORD PTR -1616[rbp], 0
	mov	QWORD PTR -1608[rbp], 0
	mov	QWORD PTR -1600[rbp], 0
	mov	QWORD PTR -1592[rbp], 0
	mov	QWORD PTR -1584[rbp], 0
	mov	QWORD PTR -1576[rbp], 0
	mov	QWORD PTR -1568[rbp], 0
	mov	QWORD PTR -1560[rbp], 0
	mov	edi, 516
	call	step_hash
	mov	rax, QWORD PTR -2864[rbp]
	mov	edi, DWORD PTR [rax]
	mov	eax, DWORD PTR g_64[rip]
	cwde
	sal	eax, 9
	mov	r8d, eax
	movzx	eax, BYTE PTR -3884[rbp]
	shr	al
	movzx	edx, al
	movzx	eax, BYTE PTR -3842[rbp]
	neg	eax
	mov	ecx, eax
	movzx	eax, BYTE PTR -3884[rbp]
	mov	esi, ecx
	and	esi, eax
	mov	eax, DWORD PTR g_891[rip]
	movsx	ecx, ax
	imul	ecx, ecx, 28529
	shr	ecx, 16
	sar	cx, 13
	sar	ax, 15
	sub	eax, ecx
	movsx	ecx, ax
	movzx	eax, BYTE PTR -3842[rbp]
	cmp	ecx, eax
	setle	al
	movzx	eax, al
	cmp	esi, eax
	setle	al
	movzx	esi, al
	movzx	eax, BYTE PTR -3842[rbp]
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	cmp	edx, eax
	setge	al
	movzx	eax, al
	movzx	ecx, BYTE PTR -3884[rbp]
	sub	eax, ecx
	mov	edx, eax
	movzx	eax, BYTE PTR -3884[rbp]
	cmp	edx, eax
	sete	al
	movzx	edx, al
	movsx	eax, BYTE PTR -3880[rbp]
	cmp	edx, eax
	setle	al
	movzx	eax, al
	or	eax, r8d
	test	eax, eax
	setne	al
	movzx	eax, al
	and	edi, eax
	mov	edx, edi
	mov	rax, QWORD PTR -2864[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 527
	call	step_hash
	cmp	WORD PTR -3838[rbp], 0
	je	.L340
	lea	rax, -3780[rbp]
	mov	QWORD PTR -2856[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -2848[rbp], rax
	mov	edi, 518
	call	step_hash
	mov	rax, QWORD PTR -2848[rbp]
	jmp	.L399
.L340:
	mov	edi, 520
	call	step_hash
	movzx	eax, BYTE PTR g_876[rip]
	movzx	ecx, al
	mov	rax, QWORD PTR g_895[rip]
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -2888[rbp]
	mov	esi, DWORD PTR [rdx]
	cdq
	idiv	esi
	movzx	eax, WORD PTR g_173[rip]
	cwde
	cmp	edx, eax
	setne	al
	movzx	eax, al
	cmp	ecx, eax
	setge	al
	movzx	edx, al
	mov	rax, QWORD PTR -2904[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 526
	call	step_hash
	mov	DWORD PTR -3584[rbp], 0
	jmp	.L341
.L342:
	mov	edi, 524
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], -1
	mov	edi, 525
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR -1592[rbp]
	mov	QWORD PTR [rax], rdx
	add	DWORD PTR -3584[rbp], 1
.L341:
	cmp	DWORD PTR -3584[rbp], 30
	jbe	.L342
	jmp	.L343
.L282:
	mov	QWORD PTR -2920[rbp], 0
	mov	edi, 531
	call	step_hash
	mov	rax, QWORD PTR -2920[rbp]
	jmp	.L399
.L343:
	mov	edi, 614
	call	step_hash
	mov	DWORD PTR -3876[rbp], 0
	jmp	.L344
.L398:
	lea	rax, g_2[rip]
	mov	QWORD PTR -3072[rbp], rax
	mov	DWORD PTR -1808[rbp], -943600604
	mov	DWORD PTR -1804[rbp], 1
	mov	DWORD PTR -1800[rbp], -939066229
	mov	DWORD PTR -1796[rbp], 1
	mov	DWORD PTR -1792[rbp], -943600604
	mov	DWORD PTR -1788[rbp], -943600604
	mov	DWORD PTR -1784[rbp], 1
	mov	DWORD PTR -1780[rbp], -939066229
	mov	DWORD PTR -1776[rbp], 1
	mov	DWORD PTR -1772[rbp], -943600604
	mov	DWORD PTR -1768[rbp], -943600604
	mov	DWORD PTR -1764[rbp], 1
	mov	DWORD PTR -1760[rbp], -939066229
	mov	DWORD PTR -1756[rbp], 1
	mov	DWORD PTR -1752[rbp], -943600604
	mov	DWORD PTR -3712[rbp], 0
	jmp	.L345
.L348:
	mov	DWORD PTR -3708[rbp], 0
	jmp	.L346
.L347:
	mov	eax, DWORD PTR -3708[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3712[rbp]
	cdqe
	add	rax, rdx
	lea	rdx, g_2[rip]
	mov	QWORD PTR -2320[rbp+rax*8], rdx
	add	DWORD PTR -3708[rbp], 1
.L346:
	cmp	DWORD PTR -3708[rbp], 0
	jle	.L347
	add	DWORD PTR -3712[rbp], 1
.L345:
	cmp	DWORD PTR -3712[rbp], 1
	jle	.L348
	mov	edi, 572
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L349
	mov	edi, 537
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR -3072[rbp]
	mov	QWORD PTR [rax], rdx
	mov	edi, 542
	call	step_hash
	mov	WORD PTR g_670[rip], 29
	jmp	.L350
.L353:
	mov	edi, 541
	call	step_hash
	movzx	edx, BYTE PTR -3884[rbp]
	mov	eax, DWORD PTR g_891[rip]
	cwde
	add	eax, edx
	test	eax, eax
	je	.L351
	movzx	eax, BYTE PTR g_178[rip+8]
	test	al, al
	je	.L351
	mov	edx, 1
	jmp	.L352
.L351:
	mov	edx, 0
.L352:
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, WORD PTR g_670[rip]
	sub	eax, 9
	mov	WORD PTR g_670[rip], ax
.L350:
	movzx	eax, WORD PTR g_670[rip]
	cmp	ax, 7
	je	.L353
	jmp	.L354
.L349:
	mov	BYTE PTR -3840[rbp], -73
	mov	QWORD PTR -2704[rbp], 0
	mov	DWORD PTR -3704[rbp], 0
	jmp	.L355
.L358:
	mov	DWORD PTR -3700[rbp], 0
	jmp	.L356
.L357:
	mov	eax, DWORD PTR -3700[rbp]
	movsx	rdx, eax
	mov	eax, DWORD PTR -3704[rbp]
	cdqe
	add	rax, rdx
	mov	QWORD PTR -2176[rbp+rax*8], 0
	add	DWORD PTR -3700[rbp], 1
.L356:
	cmp	DWORD PTR -3700[rbp], 0
	jle	.L357
	add	DWORD PTR -3704[rbp], 1
.L355:
	cmp	DWORD PTR -3704[rbp], 2
	jle	.L358
	mov	edi, 544
	call	step_hash
	mov	rax, QWORD PTR -2160[rbp]
	test	rax, rax
	setne	al
	movzx	eax, al
	cmp	DWORD PTR -3876[rbp], eax
	setnb	al
	movzx	edx, al
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 571
	call	step_hash
	mov	DWORD PTR g_64[rip], -13
	jmp	.L359
.L378:
	mov	WORD PTR -2080[rbp], -1
	mov	WORD PTR -2078[rbp], -7
	mov	WORD PTR -2076[rbp], -1
	mov	WORD PTR -2074[rbp], -7
	mov	WORD PTR -2072[rbp], -1
	mov	WORD PTR -2070[rbp], -7
	mov	WORD PTR -2068[rbp], -1
	mov	WORD PTR -2066[rbp], -7
	mov	WORD PTR -2064[rbp], -1
	mov	WORD PTR -2062[rbp], -7
	mov	WORD PTR -2060[rbp], -1
	mov	WORD PTR -2058[rbp], -7
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1632[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1624[rbp], rax
	lea	rax, -3800[rbp]
	mov	QWORD PTR -1616[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1608[rbp], rax
	mov	edi, 548
	call	step_hash
	movzx	eax, WORD PTR -2078[rbp]
	add	eax, 1
	mov	WORD PTR -2078[rbp], ax
	mov	edi, 570
	call	step_hash
	mov	DWORD PTR -3568[rbp], 0
	jmp	.L360
.L377:
	mov	DWORD PTR -3696[rbp], 0
	jmp	.L361
.L362:
	mov	eax, DWORD PTR -3696[rbp]
	cdqe
	lea	rdx, -2176[rbp]
	add	rdx, 16
	mov	QWORD PTR -2416[rbp+rax*8], rdx
	add	DWORD PTR -3696[rbp], 1
.L361:
	cmp	DWORD PTR -3696[rbp], 0
	jle	.L362
	mov	edi, 552
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	eax, DWORD PTR [rax]
	and	eax, DWORD PTR -3876[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 559
	call	step_hash
	movzx	eax, WORD PTR -2078[rbp]
	test	ax, ax
	je	.L363
	mov	WORD PTR -3804[rbp], 20111
	mov	edi, 554
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -2416[rbp]
	test	rax, rax
	setne	al
	movzx	eax, al
	or	eax, DWORD PTR -3876[rbp]
	cmp	DWORD PTR -3876[rbp], 65534
	seta	dl
	movzx	edx, dl
	cmp	eax, edx
	setbe	al
	movzx	eax, al
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 555
	call	step_hash
	mov	eax, DWORD PTR g_760[rip]
	cmp	eax, 1
	setg	al
	movzx	edx, al
	movzx	eax, BYTE PTR -3884[rbp]
	mov	ecx, eax
	sar	edx, cl
	mov	eax, DWORD PTR g_2[rip]
	cmp	edx, eax
	setl	al
	movzx	edx, al
	movsx	ax, BYTE PTR -3880[rbp]
	or	eax, edx
	and	WORD PTR -3804[rbp], ax
	mov	edi, 556
	call	step_hash
	lea	rax, g_578[rip]
	mov	QWORD PTR -1608[rbp], rax
	mov	edi, 569
	call	step_hash
	cmp	BYTE PTR -3884[rbp], 4
	seta	al
	movzx	eax, al
	mov	edx, DWORD PTR g_681[rip+116]
	movsx	ecx, dx
	cdq
	idiv	ecx
	mov	eax, edx
	test	eax, eax
	je	.L366
	jmp	.L402
.L363:
	mov	QWORD PTR -2696[rbp], 0
	mov	edi, 558
	call	step_hash
	mov	rax, QWORD PTR -2696[rbp]
	jmp	.L399
.L402:
	mov	edi, 561
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L406
	mov	edi, 562
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -3072[rbp]
	mov	eax, DWORD PTR [rax]
	and	edx, eax
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 563
	call	step_hash
	cmp	BYTE PTR -3880[rbp], 0
	jne	.L407
	mov	edi, 564
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], 7
	jmp	.L376
.L366:
	mov	edi, 566
	call	step_hash
	movzx	eax, BYTE PTR g_178[rip+4]
	movzx	eax, al
	cmp	DWORD PTR -3876[rbp], eax
	seta	cl
	movsx	edx, BYTE PTR -3880[rbp]
	mov	eax, DWORD PTR g_145[rip]
	cmp	edx, eax
	setnb	al
	xor	eax, ecx
	movzx	eax, al
	sar	eax
	mov	edx, eax
	mov	rax, QWORD PTR -3072[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	jg	.L372
	movsx	edx, BYTE PTR -3880[rbp]
	movzx	eax, BYTE PTR -3884[rbp]
	cmp	edx, eax
	jge	.L373
.L372:
	mov	eax, 1
	jmp	.L374
.L373:
	mov	eax, 0
.L374:
	cmp	eax, 1
	setg	al
	movzx	eax, al
	mov	edx, DWORD PTR -3876[rbp]
	movsx	edx, dx
	sub	eax, edx
	mov	DWORD PTR -1776[rbp], eax
	mov	edi, 567
	call	step_hash
	mov	rax, QWORD PTR g_895[rip]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L408
	mov	edi, 568
	call	step_hash
	mov	eax, DWORD PTR g_681[rip+72]
	movsx	ebx, ax
	mov	eax, 9
	cdq
	idiv	ebx
	mov	ecx, eax
	mov	rax, QWORD PTR -3072[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	edx, BYTE PTR g_178[rip+4]
	imul	eax, edx
	mov	edx, eax
	mov	eax, ecx
	sub	eax, edx
	add	eax, 1
	movsx	eax, al
	movzx	edx, BYTE PTR g_178[rip+4]
	movsx	ecx, dl
	cdq
	idiv	ecx
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	jmp	.L376
.L407:
	nop
	jmp	.L376
.L408:
	nop
.L376:
	add	DWORD PTR -3568[rbp], 1
.L360:
	cmp	DWORD PTR -3568[rbp], 13
	jg	.L377
	jmp	.L368
.L406:
	nop
.L368:
	mov	eax, DWORD PTR g_64[rip]
	add	eax, 2
	mov	DWORD PTR g_64[rip], eax
.L359:
	mov	eax, DWORD PTR g_64[rip]
	cmp	eax, 9
	jle	.L378
.L354:
	mov	edi, 611
	call	step_hash
	movsx	eax, BYTE PTR -3880[rbp]
	sal	eax, 4
	test	eax, eax
	je	.L379
	mov	BYTE PTR -3839[rbp], -1
	lea	rax, -3788[rbp]
	mov	QWORD PTR -2664[rbp], rax
	lea	rax, -2368[rbp]
	add	rax, 44
	mov	QWORD PTR -2656[rbp], rax
	mov	edi, 579
	call	step_hash
	movzx	eax, BYTE PTR -3880[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR g_1001[rip]
	mov	ecx, eax
	movzx	eax, BYTE PTR -3839[rbp]
	add	ecx, eax
	mov	eax, 1
	sub	eax, ecx
	movzx	eax, al
	imul	eax, edx
	test	eax, eax
	je	.L380
	mov	DWORD PTR -3084[rbp], 1283003107
	mov	edi, 575
	call	step_hash
	movzx	eax, WORD PTR g_627[rip]
	shr	ax, 9
	movsx	edx, ax
	movsx	ecx, BYTE PTR -3880[rbp]
	mov	rbx, QWORD PTR g_214[rip]
	mov	eax, DWORD PTR -3084[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	mov	edi, 576
	call	step_hash
	mov	rax, QWORD PTR -3072[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	je	.L381
	jmp	.L382
.L380:
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2648[rbp], rax
	mov	edi, 578
	call	step_hash
	mov	rax, QWORD PTR -3056[rbp]
	jmp	.L399
.L381:
	mov	edi, 580
	call	step_hash
	mov	rax, QWORD PTR -3072[rbp]
	mov	eax, DWORD PTR [rax]
	movsx	edx, ax
	mov	eax, DWORD PTR -3876[rbp]
	cmp	DWORD PTR -3876[rbp], 0
	je	.L383
	mov	ecx, DWORD PTR g_2[rip]
	mov	esi, ecx
	mov	rcx, QWORD PTR -3072[rbp]
	mov	ecx, DWORD PTR [rcx]
	cmp	sil, cl
	jne	.L384
	movzx	ecx, BYTE PTR g_319[rip]
	movsx	esi, cl
	mov	ecx, DWORD PTR g_64[rip]
	cmp	esi, ecx
	setge	cl
	movzx	esi, cl
	movzx	ecx, WORD PTR g_173[rip]
	movsx	ecx, cx
	or	ecx, esi
	test	ecx, ecx
	je	.L385
.L384:
	mov	ecx, 1
	jmp	.L386
.L385:
	mov	ecx, 0
.L386:
	movsx	esi, cx
	mov	rcx, QWORD PTR -3072[rbp]
	mov	ecx, DWORD PTR [rcx]
	movsx	ecx, cx
	imul	esi, ecx
	mov	ecx, DWORD PTR g_1001[rip]
	cmp	esi, ecx
	jne	.L383
	mov	ecx, 1
	jmp	.L387
.L383:
	mov	ecx, 0
.L387:
	movzx	ecx, cl
	and	ecx, 126
	cmp	ecx, 143
	setg	cl
	movzx	ecx, cl
	movzx	esi, WORD PTR g_173[rip]
	movzx	esi, sil
	sub	ecx, esi
	mov	esi, eax
	mov	edi, ecx
	call	func_22
	mov	QWORD PTR -3072[rbp], rax
	jmp	.L388
.L379:
	mov	WORD PTR -3802[rbp], 0
	mov	DWORD PTR -3692[rbp], 0
	jmp	.L389
.L390:
	mov	eax, DWORD PTR -3692[rbp]
	cdqe
	lea	rdx, -3792[rbp]
	mov	QWORD PTR -2080[rbp+rax*8], rdx
	add	DWORD PTR -3692[rbp], 1
.L389:
	cmp	DWORD PTR -3692[rbp], 2
	jle	.L390
	mov	edi, 582
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	edx, DWORD PTR [rax]
	movzx	eax, BYTE PTR g_319[rip]
	movsx	eax, al
	imul	eax, eax, -61
	xor	edx, eax
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 590
	call	step_hash
	cmp	BYTE PTR -3884[rbp], 0
	je	.L391
	lea	rax, -3796[rbp]
	mov	QWORD PTR -2672[rbp], rax
	mov	edi, 584
	call	step_hash
	mov	eax, DWORD PTR g_363[rip]
	movsx	edx, ax
	mov	ecx, DWORD PTR g_760[rip]
	mov	eax, DWORD PTR -3876[rbp]
	mov	rbx, QWORD PTR g_214[rip]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	mov	edi, 585
	call	step_hash
	mov	rax, QWORD PTR -2312[rbp]
	jmp	.L399
.L391:
	mov	edi, 587
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], -1679187384
	mov	edi, 588
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	edx, DWORD PTR [rax]
	movsx	eax, BYTE PTR -3880[rbp]
	or	edx, eax
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 589
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	edx, DWORD PTR [rax]
	mov	eax, DWORD PTR g_64[rip]
	cmp	eax, 63130
	setle	al
	movzx	eax, al
	xor	edx, eax
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 595
	call	step_hash
	mov	DWORD PTR -3788[rbp], 0
	jmp	.L393
.L394:
	mov	QWORD PTR -2680[rbp], 0
	mov	edi, 594
	call	step_hash
	mov	rax, QWORD PTR g_214[rip]
	mov	rdx, QWORD PTR -2680[rbp]
	mov	QWORD PTR [rax], rdx
	mov	eax, DWORD PTR -3788[rbp]
	add	eax, 1
	mov	DWORD PTR -3788[rbp], eax
.L393:
	mov	eax, DWORD PTR -3788[rbp]
	cmp	eax, 14
	je	.L394
	mov	edi, 610
	call	step_hash
	mov	DWORD PTR -3572[rbp], 0
	jmp	.L395
.L397:
	mov	QWORD PTR -2688[rbp], 0
	mov	edi, 609
	call	step_hash
	mov	BYTE PTR -3855[rbp], 0
	cmp	BYTE PTR -3855[rbp], 53
	jne	.L396
	mov	DWORD PTR -3092[rbp], -6
	mov	DWORD PTR -3088[rbp], 0
	mov	edi, 602
	call	step_hash
	mov	rax, QWORD PTR -3064[rbp]
	mov	ecx, DWORD PTR [rax]
	movzx	eax, BYTE PTR -3884[rbp]
	xor	eax, 111
	mov	edx, eax
	mov	eax, DWORD PTR -3092[rbp]
	or	eax, edx
	movsx	eax, al
	movzx	edx, WORD PTR g_73[rip]
	movsx	ebx, dl
	cdq
	idiv	ebx
	movsx	edx, ax
	mov	eax, DWORD PTR g_681[rip+40]
	cwde
	add	eax, edx
	and	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 608
	call	step_hash
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1632[rbp], rax
	mov	QWORD PTR -1624[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1616[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1608[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1600[rbp], rax
	mov	QWORD PTR -1592[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1584[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1576[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1568[rbp], rax
	mov	QWORD PTR -1560[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1552[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1544[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1536[rbp], rax
	mov	QWORD PTR -1528[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1520[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1512[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1504[rbp], rax
	mov	QWORD PTR -1496[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1488[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1480[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1472[rbp], rax
	mov	QWORD PTR -1464[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1456[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1448[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1440[rbp], rax
	mov	QWORD PTR -1432[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1424[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1416[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1408[rbp], rax
	mov	QWORD PTR -1400[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1392[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1384[rbp], rax
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1376[rbp], rax
	mov	QWORD PTR -1368[rbp], 0
	lea	rax, -3788[rbp]
	mov	QWORD PTR -1360[rbp], rax
	lea	rax, g_578[rip]
	mov	QWORD PTR -1352[rbp], rax
	mov	edi, 604
	call	step_hash
	cmp	WORD PTR -3802[rbp], 0
	setne	al
	movzx	ecx, al
	mov	eax, 1
	cdq
	idiv	DWORD PTR -3088[rbp]
	cwde
	imul	eax, ecx
	xor	eax, DWORD PTR -3876[rbp]
	mov	edx, eax
	mov	rax, QWORD PTR -3064[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 605
	call	step_hash
	mov	rax, QWORD PTR -2688[rbp]
	jmp	.L399
.L396:
	sub	DWORD PTR -3572[rbp], 1
.L395:
	cmp	DWORD PTR -3572[rbp], -5
	jl	.L397
.L388:
	mov	edi, 612
	call	step_hash
	movzx	edx, BYTE PTR -3884[rbp]
	mov	rax, QWORD PTR -3072[rbp]
	mov	ecx, DWORD PTR [rax]
	mov	rax, QWORD PTR -3072[rbp]
	mov	eax, DWORD PTR [rax]
	mov	rbx, QWORD PTR g_214[rip]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR [rbx], rax
	mov	edi, 613
	call	step_hash
	movzx	eax, WORD PTR -3836[rbp]
	sub	eax, 1
	mov	WORD PTR -3836[rbp], ax
.L382:
	add	DWORD PTR -3876[rbp], 9
.L344:
	cmp	DWORD PTR -3876[rbp], 12
	jne	.L398
	mov	edi, 615
	call	step_hash
	mov	rax, QWORD PTR -2624[rbp]
.L399:
	mov	rbx, QWORD PTR -40[rbp]
	sub	rbx, QWORD PTR fs:40
	je	.L400
	call	__stack_chk_fail@PLT
.L400:
	add	rsp, 3856
	pop	rbx
	pop	r12
	pop	r13
	pop	r14
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	func_50, .-func_50
	.type	func_59, @function
func_59:
.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, 1424
	mov	eax, edi
	mov	WORD PTR -1412[rbp], ax
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1256[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1216[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -1208[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -1248[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -1240[rbp], rax
	mov	QWORD PTR -1200[rbp], 0
	lea	rax, g_64[rip]
	mov	QWORD PTR -1192[rbp], rax
	mov	QWORD PTR -656[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -648[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -640[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -632[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -624[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -616[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -608[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -600[rbp], rax
	mov	QWORD PTR -592[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -584[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -576[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -568[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -560[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -552[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -544[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -536[rbp], rax
	mov	QWORD PTR -528[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -520[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -512[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -504[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -496[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -488[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -480[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -472[rbp], rax
	mov	QWORD PTR -464[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -456[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -448[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -440[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -432[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -424[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -416[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -408[rbp], rax
	mov	QWORD PTR -400[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -392[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -384[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -376[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -368[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -360[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -352[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -344[rbp], rax
	mov	QWORD PTR -336[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -320[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -312[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -304[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -296[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -288[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -280[rbp], rax
	mov	QWORD PTR -272[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -264[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -256[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -248[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -240[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -232[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -224[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -216[rbp], rax
	mov	QWORD PTR -208[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -200[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -192[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -184[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -176[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -168[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -160[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -152[rbp], rax
	mov	QWORD PTR -144[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -136[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -128[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -120[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -112[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -104[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -96[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -88[rbp], rax
	mov	QWORD PTR -80[rbp], 0
	lea	rax, g_2[rip]
	mov	QWORD PTR -72[rbp], rax
	lea	rax, -1132[rbp]
	mov	QWORD PTR -64[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -56[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -48[rbp], rax
	lea	rax, g_64[rip]
	mov	QWORD PTR -40[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -32[rbp], rax
	lea	rax, g_2[rip]
	mov	QWORD PTR -24[rbp], rax
	mov	DWORD PTR -1392[rbp], 0
	lea	rax, -1256[rbp]
	mov	QWORD PTR -1184[rbp], rax
	mov	DWORD PTR -1372[rbp], -647284557
	mov	DWORD PTR -1388[rbp], 0
	jmp	.L410
.L411:
	mov	eax, DWORD PTR -1388[rbp]
	cdqe
	mov	DWORD PTR -1132[rbp+rax*4], -914496795
	add	DWORD PTR -1388[rbp], 1
.L410:
	cmp	DWORD PTR -1388[rbp], 2
	jle	.L411
	mov	edi, 21
	call	step_hash
	movzx	eax, WORD PTR g_73[rip]
	add	eax, 1
	mov	WORD PTR g_73[rip], ax
	mov	edi, 133
	call	step_hash
	movsx	eax, WORD PTR -1412[rbp]
	mov	edx, DWORD PTR g_64[rip]
	test	edx, edx
	je	.L412
	mov	edx, DWORD PTR -1392[rbp]
	movsx	ecx, dl
	mov	edx, DWORD PTR g_64[rip]
	movsx	edx, dx
	neg	edx
	sub	edx, 7
	movsx	edx, dl
	and	edx, 21
	add	edx, ecx
	test	edx, edx
	je	.L412
	mov	edx, 1
	jmp	.L413
.L412:
	mov	edx, 0
.L413:
	movsx	esi, dx
	cdq
	idiv	esi
	test	eax, eax
	je	.L414
	mov	edx, 64
	jmp	.L415
.L414:
	mov	edx, 0
.L415:
	mov	rax, QWORD PTR -1240[rbp]
	mov	eax, DWORD PTR [rax]
	cmp	edx, eax
	je	.L416
	lea	rax, -1132[rbp]
	mov	QWORD PTR -1232[rbp], rax
	mov	DWORD PTR -1268[rbp], -1704886048
	mov	edi, 70
	call	step_hash
	mov	DWORD PTR -1392[rbp], 0
	jmp	.L417
.L440:
	lea	rax, -1240[rbp]
	mov	QWORD PTR -1160[rbp], rax
	mov	WORD PTR -1400[rbp], -15624
	mov	edi, 68
	call	step_hash
	mov	WORD PTR g_73[rip], -8
	jmp	.L418
.L439:
	lea	rax, -1132[rbp]
	add	rax, 4
	mov	QWORD PTR -1224[rbp], rax
	mov	edi, 37
	call	step_hash
	mov	eax, DWORD PTR g_2[rip]
	test	eax, eax
	je	.L419
	mov	edi, 30
	call	step_hash
	movsx	eax, WORD PTR -1412[rbp]
	jmp	.L471
.L419:
	mov	edi, 36
	call	step_hash
	mov	WORD PTR -1412[rbp], 0
	jmp	.L421
.L422:
	mov	WORD PTR -1394[rbp], 7
	lea	rax, -656[rbp]
	add	rax, 216
	mov	QWORD PTR -816[rbp], rax
	lea	rax, -1240[rbp]
	mov	QWORD PTR -808[rbp], rax
	lea	rax, -656[rbp]
	add	rax, 216
	mov	QWORD PTR -800[rbp], rax
	lea	rax, -1240[rbp]
	mov	QWORD PTR -792[rbp], rax
	lea	rax, -656[rbp]
	add	rax, 216
	mov	QWORD PTR -784[rbp], rax
	lea	rax, -1240[rbp]
	mov	QWORD PTR -776[rbp], rax
	mov	edi, 35
	call	step_hash
	movzx	eax, WORD PTR -1394[rbp]
	movsx	edx, ax
	movzx	ecx, WORD PTR -1394[rbp]
	movsx	eax, WORD PTR -1412[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	QWORD PTR -1224[rbp], rax
	movzx	eax, WORD PTR -1412[rbp]
	sub	eax, 1
	mov	WORD PTR -1412[rbp], ax
.L421:
	cmp	WORD PTR -1412[rbp], -16
	jge	.L422
	mov	edi, 38
	call	step_hash
	mov	eax, DWORD PTR g_64[rip]
	test	eax, eax
	jne	.L474
	mov	edi, 67
	call	step_hash
	movzx	eax, WORD PTR -1412[rbp]
	test	al, al
	je	.L425
	mov	DWORD PTR -1384[rbp], 0
	mov	edi, 40
	call	step_hash
	mov	rax, QWORD PTR -1208[rbp]
	mov	esi, DWORD PTR [rax]
	mov	eax, DWORD PTR g_2[rip]
	movzx	edx, al
	mov	eax, DWORD PTR -1384[rbp]
	mov	edi, eax
	cmp	WORD PTR -1412[rbp], 0
	jne	.L426
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, ax
	lea	ecx, [rax+rax]
	mov	rax, QWORD PTR -1232[rbp]
	test	rax, rax
	sete	al
	movzx	eax, al
	xor	ecx, eax
	movzx	eax, WORD PTR -1412[rbp]
	movzx	eax, ax
	sal	eax, 5
	cmp	ecx, eax
	jge	.L427
.L426:
	mov	eax, 1
	jmp	.L428
.L427:
	mov	eax, 0
.L428:
	mov	ecx, eax
	mov	eax, edi
	sub	eax, ecx
	sub	eax, 34
	mov	ecx, eax
	mov	eax, DWORD PTR g_2[rip]
	and	ecx, eax
	mov	rax, QWORD PTR -1224[rbp]
	mov	eax, DWORD PTR [rax]
	xor	eax, ecx
	movzx	eax, al
	imul	edx, eax
	mov	eax, DWORD PTR g_2[rip]
	cmp	edx, eax
	setle	al
	movzx	eax, al
	or	esi, eax
	mov	edx, esi
	mov	rax, QWORD PTR -1208[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 45
	call	step_hash
	mov	DWORD PTR -1384[rbp], 9
	jmp	.L429
.L433:
	mov	edi, 44
	call	step_hash
	movsx	edx, WORD PTR -1412[rbp]
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, ax
	sal	eax, 6
	mov	ecx, edx
	xor	ecx, eax
	cmp	WORD PTR -1412[rbp], 0
	jne	.L430
	cmp	WORD PTR -1412[rbp], 0
	jne	.L430
	movsx	edx, WORD PTR -1412[rbp]
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, ax
	cmp	edx, eax
	je	.L431
.L430:
	mov	eax, 1
	jmp	.L432
.L431:
	mov	eax, 0
.L432:
	cmp	eax, ecx
	setle	al
	movzx	edx, al
	mov	rax, QWORD PTR -1208[rbp]
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -1384[rbp], 1
.L429:
	cmp	DWORD PTR -1384[rbp], 24
	jle	.L433
	jmp	.L424
.L425:
	lea	rax, g_64[rip]
	mov	QWORD PTR -1152[rbp], rax
	mov	DWORD PTR -1260[rbp], -1737231731
	mov	edi, 55
	call	step_hash
	mov	BYTE PTR -1401[rbp], 0
	mov	edi, 48
	call	step_hash
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR [rax]
	mov	ecx, DWORD PTR [rax]
	mov	edx, DWORD PTR g_64[rip]
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR [rax]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	edi, 49
	call	step_hash
	movsx	edx, BYTE PTR -1401[rbp]
	mov	eax, DWORD PTR g_2[rip]
	cmp	edx, eax
	setge	al
	movzx	ecx, al
	mov	edx, DWORD PTR g_64[rip]
	mov	eax, DWORD PTR g_2[rip]
	cmp	edx, eax
	setle	al
	movzx	eax, al
	add	eax, ecx
	mov	DWORD PTR g_64[rip], eax
	mov	edi, 61
	call	step_hash
	mov	WORD PTR -1400[rbp], 0
	jmp	.L435
.L436:
	lea	rax, -1232[rbp]
	mov	QWORD PTR -1144[rbp], rax
	mov	edi, 59
	call	step_hash
	mov	edx, DWORD PTR g_64[rip]
	mov	rax, QWORD PTR -1192[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 60
	call	step_hash
	mov	rax, QWORD PTR -1256[rbp]
	mov	ecx, DWORD PTR [rax]
	cmp	QWORD PTR -1144[rbp], 0
	sete	al
	movzx	edx, al
	mov	rax, QWORD PTR -1256[rbp]
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	movzx	eax, WORD PTR -1400[rbp]
	sub	eax, 9
	mov	WORD PTR -1400[rbp], ax
.L435:
	cmp	WORD PTR -1400[rbp], -11
	jge	.L436
	mov	edi, 66
	call	step_hash
	mov	DWORD PTR g_64[rip], 5
	jmp	.L437
.L438:
	mov	edi, 65
	call	step_hash
	mov	eax, DWORD PTR g_145[rip]
	sub	eax, 1
	mov	DWORD PTR g_145[rip], eax
	mov	eax, DWORD PTR g_64[rip]
	sub	eax, 1
	mov	DWORD PTR g_64[rip], eax
.L437:
	mov	eax, DWORD PTR g_64[rip]
	cmp	eax, -11
	jge	.L438
	jmp	.L424
.L474:
	nop
.L424:
	movzx	eax, WORD PTR g_73[rip]
	add	eax, 5
	mov	WORD PTR g_73[rip], ax
.L418:
	movzx	eax, WORD PTR g_73[rip]
	cmp	ax, 46
	je	.L439
	mov	edi, 69
	call	step_hash
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, al
	imul	ecx, eax, 206
	mov	rax, QWORD PTR -1160[rbp]
	mov	rax, QWORD PTR [rax]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -1256[rbp]
	or	edx, ecx
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -1392[rbp], 2
.L417:
	cmp	DWORD PTR -1392[rbp], 25
	je	.L440
	mov	edi, 80
	call	step_hash
	mov	DWORD PTR -1392[rbp], 0
	jmp	.L441
.L444:
	mov	BYTE PTR -1403[rbp], 54
	mov	BYTE PTR -1402[rbp], 102
	lea	rax, -1132[rbp]
	add	rax, 4
	mov	QWORD PTR -1168[rbp], rax
	mov	edi, 78
	call	step_hash
	mov	DWORD PTR g_145[rip], 24
	jmp	.L442
.L443:
	mov	DWORD PTR -1264[rbp], 0
	mov	edi, 77
	call	step_hash
	mov	rax, QWORD PTR -1216[rbp]
	mov	ecx, DWORD PTR [rax]
	movzx	edx, BYTE PTR -1403[rbp]
	mov	eax, DWORD PTR -1264[rbp]
	movzx	eax, al
	sal	eax, 2
	movzx	eax, ax
	imul	eax, edx
	xor	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -1216[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR g_145[rip]
	sub	eax, 5
	mov	DWORD PTR g_145[rip], eax
.L442:
	mov	eax, DWORD PTR g_145[rip]
	cmp	eax, 22
	ja	.L443
	mov	edi, 79
	call	step_hash
	cmp	BYTE PTR -1402[rbp], 0
	sete	al
	movzx	edx, al
	cmp	QWORD PTR -1168[rbp], 0
	setne	al
	movzx	eax, al
	cmp	edx, eax
	setl	al
	movzx	eax, al
	movzx	edx, WORD PTR -1412[rbp]
	movsx	ecx, dl
	cdq
	idiv	ecx
	mov	eax, edx
	test	eax, eax
	setle	dl
	mov	rax, QWORD PTR -1240[rbp]
	movzx	edx, dl
	mov	DWORD PTR [rax], edx
	add	DWORD PTR -1392[rbp], 6
.L441:
	cmp	DWORD PTR -1392[rbp], 5
	ja	.L444
	jmp	.L473
.L416:
	mov	WORD PTR -1398[rbp], -21344
	mov	DWORD PTR -1368[rbp], -1697144410
	lea	rax, -656[rbp]
	add	rax, 608
	mov	QWORD PTR -1176[rbp], rax
	mov	DWORD PTR -1364[rbp], 1544139250
	mov	DWORD PTR -1360[rbp], -2
	mov	DWORD PTR -944[rbp], 1428426090
	mov	DWORD PTR -940[rbp], -7
	mov	DWORD PTR -936[rbp], -7
	mov	DWORD PTR -932[rbp], -7
	mov	DWORD PTR -928[rbp], 1428426090
	mov	DWORD PTR -924[rbp], -7
	mov	DWORD PTR -920[rbp], -7
	mov	DWORD PTR -916[rbp], -7
	mov	DWORD PTR -912[rbp], 1428426090
	mov	DWORD PTR -908[rbp], -7
	mov	DWORD PTR -904[rbp], -7
	mov	DWORD PTR -900[rbp], -7
	mov	DWORD PTR -896[rbp], 1428426090
	mov	DWORD PTR -892[rbp], -7
	mov	DWORD PTR -888[rbp], -7
	mov	DWORD PTR -884[rbp], -7
	mov	DWORD PTR -880[rbp], 1428426090
	mov	DWORD PTR -876[rbp], -7
	mov	DWORD PTR -872[rbp], -7
	mov	DWORD PTR -868[rbp], -7
	mov	DWORD PTR -864[rbp], 1428426090
	mov	DWORD PTR -860[rbp], -7
	mov	DWORD PTR -856[rbp], -7
	mov	DWORD PTR -852[rbp], -7
	mov	DWORD PTR -848[rbp], 1428426090
	mov	DWORD PTR -844[rbp], -7
	mov	DWORD PTR -840[rbp], -7
	mov	DWORD PTR -836[rbp], -7
	mov	DWORD PTR -832[rbp], 1428426090
	mov	DWORD PTR -828[rbp], -7
	mov	DWORD PTR -824[rbp], -7
	mov	DWORD PTR -820[rbp], -7
	mov	BYTE PTR -1406[rbp], 69
	mov	DWORD PTR -1380[rbp], 0
	jmp	.L446
.L447:
	mov	eax, DWORD PTR -1380[rbp]
	cdqe
	mov	DWORD PTR -1056[rbp+rax*4], -5
	add	DWORD PTR -1380[rbp], 1
.L446:
	cmp	DWORD PTR -1380[rbp], 8
	jle	.L447
	mov	edi, 130
	call	step_hash
	mov	DWORD PTR -1392[rbp], 0
	jmp	.L448
.L470:
	mov	BYTE PTR -1405[rbp], 81
	mov	DWORD PTR -1356[rbp], 1250745592
	mov	DWORD PTR -1352[rbp], 1993863425
	mov	DWORD PTR -1348[rbp], 633714450
	mov	DWORD PTR -1344[rbp], -1
	mov	DWORD PTR -1340[rbp], -1143385054
	mov	DWORD PTR -1336[rbp], -2
	mov	DWORD PTR -1332[rbp], 1813225362
	mov	DWORD PTR -1328[rbp], 498410155
	mov	DWORD PTR -1324[rbp], 583415277
	mov	edi, 85
	call	step_hash
	movzx	eax, BYTE PTR g_178[rip+4]
	add	eax, 1
	mov	BYTE PTR g_178[rip+4], al
	mov	edi, 102
	call	step_hash
	movsx	esi, WORD PTR -1412[rbp]
	movzx	eax, WORD PTR g_173[rip]
	movsx	edi, ax
	mov	rax, QWORD PTR -1256[rbp]
	mov	eax, DWORD PTR [rax]
	movzx	eax, al
	sal	eax, 3
	mov	edx, eax
	movzx	eax, WORD PTR -1412[rbp]
	movzx	eax, ax
	sal	eax, 4
	cwde
	sal	eax, 5
	mov	ecx, eax
	mov	eax, edx
	mov	edx, 0
	div	ecx
	movzx	edx, ax
	movzx	eax, WORD PTR -1412[rbp]
	movzx	eax, ax
	mov	ecx, eax
	sar	edx, cl
	mov	r9d, edx
	movzx	eax, BYTE PTR g_178[rip+4]
	movzx	r8d, al
	cmp	QWORD PTR -1176[rbp], 0
	sete	al
	movzx	edx, al
	movzx	eax, WORD PTR g_173[rip]
	cwde
	cmp	edx, eax
	setle	al
	movzx	eax, al
	movzx	edx, WORD PTR g_73[rip]
	movzx	ecx, dl
	cdq
	idiv	ecx
	mov	eax, edx
	cbw
	sub	eax, 64
	cwde
	mov	ecx, eax
	sal	r8d, cl
	mov	eax, r8d
	mov	ecx, DWORD PTR g_2[rip]
	sub	eax, ecx
	mov	edx, eax
	movsx	eax, WORD PTR -1412[rbp]
	cmp	edx, eax
	setne	al
	movzx	edx, al
	mov	eax, DWORD PTR g_64[rip]
	cmp	edx, eax
	sete	al
	movzx	eax, al
	xor	eax, r9d
	cmp	edi, eax
	setne	al
	movzx	eax, al
	cmp	esi, eax
	jl	.L449
	mov	BYTE PTR -1404[rbp], -119
	mov	DWORD PTR -1320[rbp], 1
	mov	edi, 98
	call	step_hash
	mov	DWORD PTR -1368[rbp], 7
	cmp	DWORD PTR -1368[rbp], 0
	js	.L450
	mov	DWORD PTR -1316[rbp], 9
	mov	edi, 96
	call	step_hash
	mov	WORD PTR g_73[rip], 2
	jmp	.L451
.L456:
	mov	edi, 93
	call	step_hash
	cmp	WORD PTR -1412[rbp], 0
	je	.L452
	cmp	BYTE PTR -1404[rbp], 0
	je	.L452
	mov	eax, 1
	jmp	.L453
.L452:
	mov	eax, 0
.L453:
	mov	DWORD PTR -1320[rbp], eax
	mov	edi, 94
	call	step_hash
	mov	rax, QWORD PTR -1240[rbp]
	mov	eax, DWORD PTR [rax]
	test	eax, eax
	jne	.L475
	mov	edi, 95
	call	step_hash
	movzx	eax, BYTE PTR g_178[rip+1]
	movzx	ecx, al
	movsx	eax, WORD PTR -1412[rbp]
	mov	edx, 0
	mov	esi, ecx
	mov	edi, eax
	call	func_22
	mov	edx, DWORD PTR -1368[rbp]
	movsx	rcx, edx
	mov	edx, DWORD PTR -1392[rbp]
	sal	rdx, 3
	add	rdx, rcx
	mov	QWORD PTR -656[rbp+rdx*8], rax
	jmp	.L455
.L475:
	nop
.L455:
	movzx	eax, WORD PTR g_73[rip]
	add	eax, 1
	mov	WORD PTR g_73[rip], ax
.L451:
	movzx	eax, WORD PTR g_73[rip]
	cmp	ax, 7
	jbe	.L456
	mov	edi, 97
	call	step_hash
	mov	eax, DWORD PTR -1316[rbp]
	jmp	.L471
.L449:
	mov	WORD PTR -1396[rbp], 19858
	mov	edi, 100
	call	step_hash
	mov	rax, QWORD PTR -1192[rbp]
	mov	ecx, DWORD PTR [rax]
	movsx	edx, WORD PTR -1412[rbp]
	movzx	eax, WORD PTR -1396[rbp]
	cmp	edx, eax
	setne	al
	movzx	eax, al
	or	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -1192[rbp]
	mov	DWORD PTR [rax], edx
	mov	edi, 101
	call	step_hash
	movsx	rax, BYTE PTR -1405[rbp]
	mov	edx, 3010118270
	cmp	rax, rdx
	jbe	.L458
	mov	eax, DWORD PTR -1356[rbp]
	movsx	edx, al
	jmp	.L459
.L458:
	mov	edx, 0
.L459:
	movzx	eax, WORD PTR -1412[rbp]
	movsx	eax, al
	mov	ecx, eax
	sar	edx, cl
	mov	eax, edx
	movzx	eax, ax
	mov	edx, DWORD PTR g_145[rip]
	movzx	ecx, dx
	sub	eax, ecx
	mov	edx, eax
	mov	rax, QWORD PTR -1192[rbp]
	mov	DWORD PTR [rax], edx
.L450:
	mov	edi, 129
	call	step_hash
	mov	DWORD PTR g_145[rip], 1
	jmp	.L460
.L469:
	mov	DWORD PTR -1376[rbp], -841781729
	mov	DWORD PTR -1312[rbp], -1878848398
	mov	DWORD PTR -1308[rbp], 2
	mov	DWORD PTR -1304[rbp], 2076708470
	mov	DWORD PTR -1300[rbp], -1
	mov	DWORD PTR -1296[rbp], 196687330
	mov	DWORD PTR -1292[rbp], -10
	mov	DWORD PTR -816[rbp], 1
	mov	DWORD PTR -812[rbp], -8
	mov	DWORD PTR -808[rbp], 1
	mov	DWORD PTR -804[rbp], -770712681
	mov	DWORD PTR -800[rbp], 0
	mov	DWORD PTR -796[rbp], 1
	mov	DWORD PTR -792[rbp], -7
	mov	DWORD PTR -788[rbp], -6
	mov	DWORD PTR -784[rbp], 1
	mov	DWORD PTR -780[rbp], -8
	mov	DWORD PTR -776[rbp], 1
	mov	DWORD PTR -772[rbp], -770712681
	mov	DWORD PTR -768[rbp], 0
	mov	DWORD PTR -764[rbp], 1
	mov	DWORD PTR -760[rbp], -7
	mov	DWORD PTR -756[rbp], -6
	mov	DWORD PTR -752[rbp], 1
	mov	DWORD PTR -748[rbp], -8
	mov	DWORD PTR -744[rbp], 1
	mov	DWORD PTR -740[rbp], -770712681
	mov	DWORD PTR -736[rbp], 0
	mov	DWORD PTR -732[rbp], 1
	mov	DWORD PTR -728[rbp], -7
	mov	DWORD PTR -724[rbp], -6
	mov	DWORD PTR -720[rbp], 1
	mov	DWORD PTR -716[rbp], -8
	mov	DWORD PTR -712[rbp], 1
	mov	DWORD PTR -708[rbp], -770712681
	mov	DWORD PTR -704[rbp], 0
	mov	DWORD PTR -700[rbp], 1
	mov	DWORD PTR -696[rbp], -7
	mov	DWORD PTR -692[rbp], -6
	mov	DWORD PTR -688[rbp], 1
	mov	DWORD PTR -684[rbp], -8
	mov	DWORD PTR -680[rbp], 1
	mov	DWORD PTR -676[rbp], -770712681
	mov	DWORD PTR -672[rbp], 0
	mov	DWORD PTR -668[rbp], 1
	mov	DWORD PTR -664[rbp], -7
	mov	DWORD PTR -660[rbp], -6
	mov	edi, 111
	call	step_hash
	mov	DWORD PTR g_64[rip], 7
	jmp	.L461
.L462:
	mov	DWORD PTR -1272[rbp], 1
	mov	edi, 109
	call	step_hash
	movsx	eax, BYTE PTR -1405[rbp]
	mov	DWORD PTR -1272[rbp], eax
	mov	edi, 110
	call	step_hash
	mov	rax, QWORD PTR -1248[rbp]
	mov	ecx, DWORD PTR [rax]
	movsx	edx, WORD PTR -1412[rbp]
	mov	rax, QWORD PTR -1248[rbp]
	and	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR g_64[rip]
	sub	eax, 1
	mov	DWORD PTR g_64[rip], eax
.L461:
	mov	eax, DWORD PTR g_64[rip]
	cmp	eax, 1
	jg	.L462
	mov	edi, 128
	call	step_hash
	mov	WORD PTR -1398[rbp], 2
	jmp	.L463
.L468:
	mov	DWORD PTR -1288[rbp], 1355057572
	mov	DWORD PTR -1284[rbp], 2
	mov	DWORD PTR -1120[rbp], -1776443221
	mov	DWORD PTR -1116[rbp], -10
	mov	DWORD PTR -1112[rbp], -1776443221
	mov	DWORD PTR -1108[rbp], -10
	mov	DWORD PTR -1104[rbp], -1776443221
	mov	DWORD PTR -1100[rbp], -10
	mov	DWORD PTR -1280[rbp], -1
	lea	rax, g_214[rip]
	mov	QWORD PTR -1008[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -1000[rbp], rax
	mov	QWORD PTR -992[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -984[rbp], rax
	lea	rax, g_214[rip]
	mov	QWORD PTR -976[rbp], rax
	mov	QWORD PTR -968[rbp], 0
	lea	rax, g_214[rip]
	mov	QWORD PTR -960[rbp], rax
	mov	edi, 119
	call	step_hash
	mov	WORD PTR g_174[rip], 0
	jmp	.L464
.L465:
	mov	edi, 118
	call	step_hash
	mov	rax, QWORD PTR -1208[rbp]
	mov	ecx, DWORD PTR [rax]
	movzx	eax, WORD PTR g_174[rip]
	cwde
	movzx	edx, WORD PTR g_174[rip]
	movsx	edx, dx
	add	edx, 1
	movsx	rsi, edx
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 2
	add	rax, rdx
	lea	rdx, [rax+rsi]
	lea	rax, g_178[rip]
	add	rax, rdx
	movzx	eax, BYTE PTR [rax]
	movzx	edx, al
	movzx	eax, BYTE PTR g_178[rip+13]
	test	al, al
	sete	al
	movzx	eax, al
	cmp	edx, eax
	sete	al
	movzx	eax, al
	mov	esi, DWORD PTR g_2[rip]
	cdq
	idiv	esi
	and	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -1208[rbp]
	mov	DWORD PTR [rax], edx
	movzx	eax, WORD PTR g_174[rip]
	add	eax, 1
	mov	WORD PTR g_174[rip], ax
.L464:
	movzx	eax, WORD PTR g_174[rip]
	cmp	ax, 3
	jle	.L465
	mov	edi, 120
	call	step_hash
	sub	DWORD PTR -1376[rbp], 1
	mov	edi, 126
	call	step_hash
	mov	WORD PTR g_174[rip], 2
	jmp	.L466
.L467:
	mov	DWORD PTR -1276[rbp], 8
	mov	DWORD PTR -1088[rbp], 9
	mov	DWORD PTR -1084[rbp], 1
	mov	DWORD PTR -1080[rbp], 9
	mov	DWORD PTR -1076[rbp], 1
	mov	DWORD PTR -1072[rbp], 9
	mov	DWORD PTR -1068[rbp], 1
	mov	DWORD PTR -1064[rbp], 9
	mov	DWORD PTR -1060[rbp], 1
	mov	edi, 124
	call	step_hash
	movzx	eax, WORD PTR g_174[rip]
	cwde
	mov	rdx, QWORD PTR g_214[rip]
	mov	esi, DWORD PTR -1392[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	add	rax, rax
	add	rax, rsi
	lea	rcx, 0[0+rax*8]
	lea	rax, g_215[rip]
	mov	rax, QWORD PTR [rcx+rax]
	mov	QWORD PTR [rdx], rax
	mov	edi, 125
	call	step_hash
	sub	BYTE PTR -1406[rbp], 1
	movzx	eax, WORD PTR g_174[rip]
	sub	eax, 1
	mov	WORD PTR g_174[rip], ax
.L466:
	movzx	eax, WORD PTR g_174[rip]
	test	ax, ax
	jns	.L467
	mov	edi, 127
	call	step_hash
	lea	rax, -1248[rbp]
	mov	QWORD PTR -1184[rbp], rax
	movzx	eax, WORD PTR -1398[rbp]
	add	eax, 1
	mov	WORD PTR -1398[rbp], ax
.L463:
	cmp	WORD PTR -1398[rbp], 7
	jle	.L468
	mov	eax, DWORD PTR g_145[rip]
	add	eax, 1
	mov	DWORD PTR g_145[rip], eax
.L460:
	mov	eax, DWORD PTR g_145[rip]
	cmp	eax, 7
	jbe	.L469
	add	DWORD PTR -1392[rbp], 1
.L448:
	cmp	DWORD PTR -1392[rbp], 7
	jbe	.L470
	mov	edi, 131
	call	step_hash
	mov	eax, DWORD PTR -1024[rbp]
	sub	eax, 1
	mov	DWORD PTR -1024[rbp], eax
	mov	edi, 132
	call	step_hash
	movzx	eax, BYTE PTR g_178[rip+1]
	movzx	eax, al
	jmp	.L471
.L473:
	mov	edi, 134
	call	step_hash
	add	DWORD PTR -1372[rbp], 1
	mov	edi, 135
	call	step_hash
	mov	eax, DWORD PTR g_64[rip]
.L471:
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L472
	call	__stack_chk_fail@PLT
.L472:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	func_59, .-func_59
	.section	.rodata
.LC2:
	.string	"g_2"
.LC3:
	.string	"g_64"
.LC4:
	.string	"g_73"
.LC5:
	.string	"g_145"
.LC6:
	.string	"g_173[i]"
.LC7:
	.string	"index = [%d]\n"
.LC8:
	.string	"g_174"
.LC9:
	.string	"g_178[i][j]"
.LC10:
	.string	"index = [%d][%d]\n"
.LC11:
	.string	"g_319"
.LC12:
	.string	"g_363"
.LC13:
	.string	"g_578"
.LC14:
	.string	"g_627"
.LC15:
	.string	"g_670"
.LC16:
	.string	"g_681[i][j]"
.LC17:
	.string	"g_760"
.LC18:
	.string	"g_876"
.LC19:
	.string	"g_891[i]"
.LC20:
	.string	"g_1001"
.LC21:
	.string	"g_1077"
.LC22:
	.string	"g_1156"
.LC23:
	.string	"g_1229"
.LC24:
	.string	"g_1296[i][j]"
.LC25:
	.string	"g_1380"
.LC26:
	.string	"g_1491"
.LC27:
	.string	"g_1519"
.LC28:
	.string	"g_1520[i]"
	.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
	sub	rsp, 16
	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_64[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC3[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_73[rip]
	movzx	eax, ax
	lea	rsi, .LC4[rip]
	mov	edi, eax
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR g_145[rip]
	lea	rsi, .LC5[rip]
	mov	edi, eax
	call	transparent_crc
	mov	DWORD PTR -8[rbp], 0
	jmp	.L477
.L479:
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rcx, [rax+rax]
	lea	rax, g_173[rip]
	movzx	eax, WORD PTR [rcx+rax]
	cwde
	lea	rsi, .LC6[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	test	eax, eax
	je	.L478
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
.L478:
	add	DWORD PTR -8[rbp], 1
.L477:
	cmp	DWORD PTR -8[rbp], 0
	jle	.L479
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_174[rip]
	cwde
	lea	rsi, .LC8[rip]
	mov	edi, eax
	call	transparent_crc
	mov	DWORD PTR -8[rbp], 0
	jmp	.L480
.L484:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L481
.L483:
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -8[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	lea	rcx, [rax+rsi]
	lea	rax, g_178[rip]
	add	rax, rcx
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	lea	rsi, .LC9[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	test	eax, eax
	je	.L482
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
.L482:
	add	DWORD PTR -4[rbp], 1
.L481:
	cmp	DWORD PTR -4[rbp], 4
	jle	.L483
	add	DWORD PTR -8[rbp], 1
.L480:
	cmp	DWORD PTR -8[rbp], 3
	jle	.L484
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, BYTE PTR g_319[rip]
	movsx	eax, al
	lea	rsi, .LC11[rip]
	mov	edi, eax
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR g_363[rip]
	lea	rsi, .LC12[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_578[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC13[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_627[rip]
	movzx	eax, ax
	lea	rsi, .LC14[rip]
	mov	edi, eax
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_670[rip]
	cwde
	lea	rsi, .LC15[rip]
	mov	edi, eax
	call	transparent_crc
	mov	DWORD PTR -8[rbp], 0
	jmp	.L485
.L489:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L486
.L488:
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	sal	rax, 3
	add	rax, rcx
	lea	rcx, 0[0+rax*4]
	lea	rax, g_681[rip]
	mov	eax, DWORD PTR [rcx+rax]
	lea	rsi, .LC16[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	test	eax, eax
	je	.L487
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
.L487:
	add	DWORD PTR -4[rbp], 1
.L486:
	cmp	DWORD PTR -4[rbp], 7
	jle	.L488
	add	DWORD PTR -8[rbp], 1
.L485:
	cmp	DWORD PTR -8[rbp], 4
	jle	.L489
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_760[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC17[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, BYTE PTR g_876[rip]
	movzx	eax, al
	lea	rsi, .LC18[rip]
	mov	edi, eax
	call	transparent_crc
	mov	DWORD PTR -8[rbp], 0
	jmp	.L490
.L492:
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rax, g_891[rip]
	mov	eax, DWORD PTR [rcx+rax]
	lea	rsi, .LC19[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	test	eax, eax
	je	.L491
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
.L491:
	add	DWORD PTR -8[rbp], 1
.L490:
	cmp	DWORD PTR -8[rbp], 0
	jle	.L492
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_1001[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC20[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, WORD PTR g_1077[rip]
	movzx	eax, ax
	lea	rsi, .LC21[rip]
	mov	edi, eax
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, BYTE PTR g_1156[rip]
	movsx	eax, al
	lea	rsi, .LC22[rip]
	mov	edi, eax
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	movzx	eax, BYTE PTR g_1229[rip]
	movsx	eax, al
	lea	rsi, .LC23[rip]
	mov	edi, eax
	call	transparent_crc
	mov	DWORD PTR -8[rbp], 0
	jmp	.L493
.L497:
	mov	DWORD PTR -4[rbp], 0
	jmp	.L494
.L496:
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR -4[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -8[rbp]
	movsx	rcx, eax
	mov	rax, rcx
	sal	rax, 2
	add	rax, rcx
	add	rax, rax
	add	rax, rsi
	lea	rcx, 0[0+rax*4]
	lea	rax, g_1296[rip]
	mov	eax, DWORD PTR [rcx+rax]
	lea	rsi, .LC24[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	test	eax, eax
	je	.L495
	mov	edx, DWORD PTR -4[rbp]
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC10[rip]
	mov	eax, 0
	call	printf@PLT
.L495:
	add	DWORD PTR -4[rbp], 1
.L494:
	cmp	DWORD PTR -4[rbp], 9
	jle	.L496
	add	DWORD PTR -8[rbp], 1
.L493:
	cmp	DWORD PTR -8[rbp], 7
	jle	.L497
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR g_1380[rip]
	lea	rsi, .LC25[rip]
	mov	edi, eax
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR g_1491[rip]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC26[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	edx, DWORD PTR print_hash_value[rip]
	mov	eax, DWORD PTR g_1519[rip]
	lea	rsi, .LC27[rip]
	mov	edi, eax
	call	transparent_crc
	mov	DWORD PTR -8[rbp], 0
	jmp	.L498
.L500:
	mov	eax, DWORD PTR print_hash_value[rip]
	mov	edx, DWORD PTR -8[rbp]
	movsx	rdx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, g_1520[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	mov	ecx, edx
	mov	edx, eax
	lea	rsi, .LC28[rip]
	mov	edi, ecx
	call	transparent_crc
	mov	eax, DWORD PTR print_hash_value[rip]
	test	eax, eax
	je	.L499
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, eax
	lea	rdi, .LC7[rip]
	mov	eax, 0
	call	printf@PLT
.L499:
	add	DWORD PTR -8[rbp], 1
.L498:
	cmp	DWORD PTR -8[rbp], 5
	jle	.L500
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	csmith_compute_hash, .-csmith_compute_hash
	.section	.rodata
	.align 8
.LC29:
	.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, .LC29[rip]
	mov	eax, 0
	call	printf@PLT
	mov	DWORD PTR crc32_context[rip], -1
	mov	DWORD PTR -4[rbp], 0
	jmp	.L502
.L503:
	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
.L502:
	cmp	DWORD PTR -4[rbp], 255
	jle	.L503
	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	"16904.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
.LC41:
	.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	.LC41
	.size	transparent_crc, .-transparent_crc
	.section	.rodata
	.align	2
.LC42:
	.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	.LC42
	.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	-32862548
	.align	2
	.type	g_64, %object
	.size	g_64, 4
g_64:
	.word	-2
	.align	1
	.type	g_73, %object
	.size	g_73, 2
g_73:
	.short	-27767
	.align	2
	.type	g_145, %object
	.size	g_145, 4
g_145:
	.word	132712502
	.align	2
	.type	g_173, %object
	.size	g_173, 2
g_173:
	.short	-10
	.align	1
	.type	g_174, %object
	.size	g_174, 2
g_174:
	.short	156
	.align	2
	.type	g_178, %object
	.size	g_178, 20
g_178:
	.ascii	"\272\000\376\377\377"
	.ascii	"\272\000\376\377\377"
	.ascii	"\272\000\376\377\377"
	.ascii	"\272\000\376\377\377"
	.local	g_215
	.comm	g_215,120,4
	.align	2
	.type	g_214, %object
	.size	g_214, 4
g_214:
	.word	g_215+40
	.type	g_319, %object
	.size	g_319, 1
g_319:
	.byte	2
	.align	2
	.type	g_363, %object
	.size	g_363, 4
g_363:
	.word	-1229785581
	.align	2
	.type	g_578, %object
	.size	g_578, 4
g_578:
	.word	627636416
	.align	1
	.type	g_627, %object
	.size	g_627, 2
g_627:
	.short	-20202
	.align	1
	.type	g_670, %object
	.size	g_670, 2
g_670:
	.short	-1
	.local	g_677
	.comm	g_677,4,4
	.align	2
	.type	g_681, %object
	.size	g_681, 160
g_681:
	.word	-1088386345
	.word	409936259
	.word	-606404664
	.word	409936259
	.word	-1088386345
	.word	-1
	.word	-1088386345
	.word	409936259
	.word	-1088386345
	.word	409936259
	.word	-606404664
	.word	409936259
	.word	-1088386345
	.word	-1
	.word	-1088386345
	.word	409936259
	.word	-1088386345
	.word	409936259
	.word	-606404664
	.word	409936259
	.word	-1088386345
	.word	-1
	.word	-1088386345
	.word	409936259
	.word	-1088386345
	.word	409936259
	.word	-606404664
	.word	409936259
	.word	-1088386345
	.word	-1
	.word	-1088386345
	.word	409936259
	.word	-1088386345
	.word	409936259
	.word	-606404664
	.word	409936259
	.word	-1088386345
	.word	-1
	.word	-1088386345
	.word	409936259
	.align	2
	.type	g_760, %object
	.size	g_760, 4
g_760:
	.word	-1550637324
	.local	g_876
	.comm	g_876,1,1
	.align	2
	.type	g_891, %object
	.size	g_891, 4
g_891:
	.word	1549463472
	.align	2
	.type	g_895, %object
	.size	g_895, 4
g_895:
	.word	g_2
	.align	2
	.type	g_1001, %object
	.size	g_1001, 4
g_1001:
	.word	1
	.align	1
	.type	g_1077, %object
	.size	g_1077, 2
g_1077:
	.short	-10
	.type	g_1156, %object
	.size	g_1156, 1
g_1156:
	.byte	60
	.type	g_1229, %object
	.size	g_1229, 1
g_1229:
	.byte	18
	.align	2
	.type	g_1296, %object
	.size	g_1296, 320
g_1296:
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.word	1792462605
	.word	-502908908
	.word	9
	.word	686201932
	.word	-2108940845
	.word	0
	.word	0
	.word	-1
	.word	0
	.word	0
	.align	2
	.type	g_1380, %object
	.size	g_1380, 4
g_1380:
	.word	6
	.align	2
	.type	g_1491, %object
	.size	g_1491, 4
g_1491:
	.word	293885247
	.align	2
	.type	g_1519, %object
	.size	g_1519, 4
g_1519:
	.word	8
	.local	g_1520
	.comm	g_1520,24,4
	.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, #0
	strb	r3, [fp, #-27]
	ldr	r3, .L31
	str	r3, [fp, #-24]
	ldr	r3, .L31+4
	str	r3, [fp, #-20]
	ldr	r3, .L31+8
	strh	r3, [fp, #-26]	@ movhi
	ldr	r0, .L31+12
	bl	step_hash
	ldr	r3, .L31+16
	mov	r2, #0
	str	r2, [r3]
	b	.L26
.L27:
	ldr	r3, .L31+20
	str	r3, [fp, #-16]
	ldr	r3, .L31+24
	str	r3, [fp, #-12]
	mov	r3, #7
	str	r3, [fp, #-8]
	ldr	r3, .L31+16
	ldr	r3, [r3]
	sub	r3, r3, #4
	ldr	r2, .L31+16
	str	r3, [r2]
.L26:
	ldr	r3, .L31+16
	ldr	r3, [r3]
	cmn	r3, #27
	bge	.L27
	mov	r0, #912
	bl	step_hash
	ldr	r3, .L31+28
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #13
	sub	r3, r3, r2
	lsl	r3, r3, #3
	sub	r2, r3, r2
	ldr	r3, .L31+28
	ldr	r3, [r3]
	and	r2, r2, r1
	str	r2, [r3]
	ldr	r0, .L31+32
	bl	step_hash
	ldr	r3, .L31+36
	mov	r2, #7
	str	r2, [r3]
	b	.L28
.L29:
	mov	r0, #916
	bl	step_hash
	ldr	r3, .L31+40
	ldr	r3, [r3]
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L31+36
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L31+36
	str	r3, [r2]
.L28:
	ldr	r3, .L31+36
	ldr	r3, [r3]
	cmn	r3, #27
	blt	.L29
	ldr	r0, .L31+44
	bl	step_hash
	ldr	r3, .L31+48
	ldr	r3, [r3]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L32:
	.align	2
.L31:
	.word	-1218367542
	.word	-1495703790
	.word	-21588
	.word	911
	.word	g_2
	.word	g_578
	.word	-400280513
	.word	g_895
	.word	917
	.word	g_760
	.word	g_214
	.word	918
	.word	g_1380
	.size	func_1, .-func_1
	.section	.rodata
	.align	2
.LC0:
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.word	-69357266
	.word	-1
	.align	2
.LC1:
	.short	16953
	.short	16953
	.short	1
	.short	3
	.short	-8811
	.short	3
	.short	1
	.short	16953
	.short	16953
	.short	16953
	.short	1
	.short	3
	.short	-8811
	.short	3
	.short	1
	.short	16953
	.align	2
.LC2:
	.word	-88571791
	.word	1
	.word	1849602287
	.word	1849602287
	.word	1
	.word	-88571791
	.word	1
	.word	1849602287
	.word	1849602287
	.word	1
	.word	-88571791
	.word	1
	.word	1849602287
	.word	1849602287
	.word	1
	.word	-88571791
	.word	1
	.word	1849602287
	.word	1849602287
	.word	1
	.word	-88571791
	.word	1
	.word	1849602287
	.word	1849602287
	.word	1
	.align	2
.LC43:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_5, %function
func_5:
	@ args = 0, pretend = 0, frame = 544
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #544
	str	r1, [fp, #-540]
	str	r3, [fp, #-544]
	mov	r3, r0
	strb	r3, [fp, #-533]
	sub	r3, fp, #4
	sub	r3, r3, #532
	strh	r2, [r3]	@ movhi
	ldr	r3, .L46
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L46+4
	str	r3, [fp, #-512]
	mov	r3, #0
	str	r3, [fp, #-508]
	ldr	r3, .L46+8
	str	r3, [fp, #-504]
	mvn	r3, #4
	str	r3, [fp, #-500]
	ldr	r2, .L46+12
	sub	r3, fp, #232
	mov	r1, r2
	mov	r2, #224
	mov	r0, r3
	bl	memcpy
	mvn	r3, #6
	str	r3, [fp, #-496]
	mvn	r3, #11
	strb	r3, [fp, #-526]
	mvn	r3, #33
	strb	r3, [fp, #-525]
	mvn	r3, #4
	strb	r3, [fp, #-524]
	mov	r3, #0
	strb	r3, [fp, #-523]
	mov	r3, #0
	str	r3, [fp, #-492]
	mov	r3, #0
	str	r3, [fp, #-520]
	b	.L34
.L37:
	mov	r3, #0
	str	r3, [fp, #-516]
	b	.L35
.L36:
	ldr	r2, [fp, #-520]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	ldr	r2, [fp, #-516]
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #4
	add	r3, r2, r3
	mvn	r2, #2
	str	r2, [r3, #-428]
	ldr	r3, [fp, #-516]
	add	r3, r3, #1
	str	r3, [fp, #-516]
.L35:
	ldr	r3, [fp, #-516]
	cmp	r3, #4
	ble	.L36
	ldr	r3, [fp, #-520]
	add	r3, r3, #1
	str	r3, [fp, #-520]
.L34:
	ldr	r3, [fp, #-520]
	cmp	r3, #4
	ble	.L37
	mov	r3, #0
	str	r3, [fp, #-520]
	b	.L38
.L41:
	mov	r3, #0
	str	r3, [fp, #-516]
	b	.L39
.L40:
	ldr	r2, [fp, #-520]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	sub	r2, fp, #4
	add	r2, r2, r3
	ldr	r3, [fp, #-516]
	add	r3, r2, r3
	sub	r3, r3, #468
	mov	r2, #15
	strb	r2, [r3]
	ldr	r3, [fp, #-516]
	add	r3, r3, #1
	str	r3, [fp, #-516]
.L39:
	ldr	r3, [fp, #-516]
	cmp	r3, #5
	ble	.L40
	ldr	r3, [fp, #-520]
	add	r3, r3, #1
	str	r3, [fp, #-520]
.L38:
	ldr	r3, [fp, #-520]
	cmp	r3, #0
	ble	.L41
	mov	r0, #704
	bl	step_hash
	ldr	r3, .L46+16
	ldr	r3, [r3]
	mov	r0, r3
	bl	func_11
	str	r0, [fp, #-512]
	ldr	r0, .L46+20
	bl	step_hash
	ldr	r3, .L46+24
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L42
.L43:
	ldr	r3, .L46+28
	sub	ip, fp, #464
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L46+8
	str	r3, [fp, #-488]
	ldr	r3, .L46+32
	str	r3, [fp, #-484]
	ldr	r3, .L46+36
	str	r3, [fp, #-480]
	ldr	r2, .L46+40
	sub	r3, fp, #332
	mov	r1, r2
	mov	r2, #100
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #4
	sub	r3, r3, #516
	sub	r3, r3, #2
	mov	r2, #129
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-476]
	ldr	r3, .L46+24
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #4
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L46+24
	strh	r3, [r2]	@ movhi
.L42:
	ldr	r3, .L46+24
	ldrsh	r3, [r3]
	cmn	r3, #17
	bge	.L43
	mov	r0, #860
	bl	step_hash
	ldr	r3, .L46+44
	ldr	r3, [r3]
	ldr	r3, [r3]
	ldr	r2, .L46
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L45
	bl	__stack_chk_fail
.L45:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L47:
	.align	2
.L46:
	.word	.LC43
	.word	-1825237188
	.word	g_214
	.word	.LC0
	.word	g_2
	.word	859
	.word	g_670
	.word	.LC1
	.word	-1931085443
	.word	g_64
	.word	.LC2
	.word	g_895
	.size	func_5, .-func_5
	.section	.rodata
	.align	2
.LC44:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_11, %function
func_11:
	@ args = 0, pretend = 0, frame = 40
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #44
	str	r0, [fp, #-48]
	ldr	r3, .L51
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	ldr	r3, .L51+4
	str	r3, [fp, #-40]
	mov	r3, #6
	str	r3, [fp, #-36]
	mov	r3, #0
	str	r3, [fp, #-32]
	sub	r3, fp, #40
	str	r3, [fp, #-28]
	ldr	r3, .L51+8
	str	r3, [fp, #-24]
	ldr	r3, .L51+12
	str	r3, [fp, #-20]
	ldr	r0, .L51+16
	bl	step_hash
	ldr	r3, [fp, #-40]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, [fp, #-36]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r0, r3
	ldr	r3, .L51+4
	ldr	r1, [r3]
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	bl	func_22
	mov	r1, r0
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	and	r2, r3, #255
	ldr	r3, .L51+4
	mov	r0, #0
	bl	func_17
	mov	r3, r0
	cmp	r4, r3
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-40]
	mov	r1, r3
	mov	r0, r2
	bl	func_13
	mov	r2, r0
	ldr	r3, [fp, #-28]
	str	r2, [r3]
	ldr	r0, .L51+20
	bl	step_hash
	ldr	r3, [fp, #-20]
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r0, .L51+24
	bl	step_hash
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	ldr	r2, .L51
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L50
	bl	__stack_chk_fail
.L50:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L52:
	.align	2
.L51:
	.word	.LC44
	.word	g_2
	.word	g_895
	.word	g_214
	.word	701
	.word	702
	.word	703
	.size	func_11, .-func_11
	.global	__aeabi_idivmod
	.global	__aeabi_uidiv
	.section	.rodata
	.align	2
.LC3:
	.word	g_214
	.word	g_677
	.word	g_214
	.word	g_677
	.word	g_214
	.word	g_677
	.align	2
.LC4:
	.word	g_578
	.word	g_2
	.word	g_2
	.word	g_2
	.word	g_2
	.word	g_578
	.word	g_2
	.word	g_578
	.word	g_2
	.word	g_2
	.word	g_2
	.word	g_2
	.word	g_578
	.word	g_2
	.word	g_578
	.word	g_2
	.word	g_2
	.word	g_2
	.word	g_2
	.word	g_578
	.word	g_2
	.align	2
.LC5:
	.ascii	"\004\013\004\013\004"
	.ascii	"\004\013\004\013\004"
	.ascii	"\004\013\004\013\004"
	.ascii	"\004\013\004\013\004"
	.ascii	"\004\013\004\013\004"
	.align	2
.LC6:
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.word	-1271664360
	.align	2
.LC7:
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.word	-1
	.align	2
.LC45:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_13, %function
func_13:
	@ args = 0, pretend = 0, frame = 408
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #412
	str	r0, [fp, #-416]
	str	r1, [fp, #-420]
	ldr	r3, .L101
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mov	r3, #3
	strb	r3, [fp, #-408]
	mov	r3, #0
	str	r3, [fp, #-376]
	mov	r3, #63
	strb	r3, [fp, #-409]
	ldr	r3, .L101+4
	sub	ip, fp, #252
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	ldr	r0, .L101+8
	bl	step_hash
	sub	r3, fp, #408
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L54
	ldr	r3, .L101+12
	str	r3, [fp, #-304]
	mov	r3, #0
	str	r3, [fp, #-392]
	b	.L55
.L56:
	ldr	r3, [fp, #-392]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-88]
	ldr	r3, [fp, #-392]
	add	r3, r3, #1
	str	r3, [fp, #-392]
.L55:
	ldr	r3, [fp, #-392]
	cmp	r3, #4
	ble	.L56
	ldr	r0, .L101+16
	bl	step_hash
	sub	r3, fp, #408
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L57
	ldr	r0, .L101+20
	bl	step_hash
	ldr	r0, [fp, #-416]
	ldr	r1, [fp, #-416]
	ldr	r3, [fp, #-416]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L101+24
	ldr	r4, [r2]
	mov	r2, r3
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	b	.L58
.L57:
	mvn	r3, #0
	str	r3, [fp, #-300]
	ldr	r3, .L101+28
	str	r3, [fp, #-296]
	mov	r3, #0
	str	r3, [fp, #-292]
	ldr	r3, .L101+32
	str	r3, [fp, #-288]
	ldr	r0, .L101+36
	bl	step_hash
	ldr	r3, [fp, #-420]
	str	r3, [fp, #-292]
	mov	r0, #652
	bl	step_hash
	ldr	r3, [fp, #-376]
	sub	r3, r3, #1
	str	r3, [fp, #-376]
	ldr	r0, .L101+40
	bl	step_hash
	ldr	r3, [fp, #-288]
	ldr	r2, [r3]
	ldr	r3, [fp, #-420]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-288]
	str	r2, [r3]
.L58:
	ldr	r0, .L101+44
	bl	step_hash
	ldr	r2, [fp, #-88]
	ldr	r3, [fp, #-304]
	str	r2, [r3]
	b	.L59
.L54:
	sub	r3, fp, #12
	sub	r3, r3, #392
	mvn	r2, #4
	strh	r2, [r3]	@ movhi
	ldr	r3, .L101+12
	str	r3, [fp, #-372]
	mov	r3, #0
	str	r3, [fp, #-400]
	mvn	r3, #41
	strb	r3, [fp, #-407]
	mov	r3, #1
	str	r3, [fp, #-368]
	ldr	r3, .L101+48
	str	r3, [fp, #-364]
	sub	r3, fp, #12
	sub	r3, r3, #392
	sub	r3, r3, #2
	ldr	r2, .L101+52
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-388]
	b	.L60
.L61:
	ldr	r3, [fp, #-388]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-272]
	ldr	r3, [fp, #-388]
	add	r3, r3, #1
	str	r3, [fp, #-388]
.L60:
	ldr	r3, [fp, #-388]
	cmp	r3, #3
	ble	.L61
	mov	r3, #0
	str	r3, [fp, #-388]
	b	.L62
.L63:
	ldr	r3, [fp, #-388]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, .L101+56
	str	r2, [r3, #-188]
	ldr	r3, [fp, #-388]
	add	r3, r3, #1
	str	r3, [fp, #-388]
.L62:
	ldr	r3, [fp, #-388]
	cmp	r3, #6
	ble	.L63
	ldr	r0, .L101+60
	bl	step_hash
	ldr	r3, [fp, #-376]
	cmp	r3, #0
	bne	.L64
	ldr	r3, [fp, #-420]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L64
	sub	r3, fp, #408
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L65
.L64:
	mov	r2, #1
	b	.L66
.L65:
	mov	r2, #0
.L66:
	sub	r3, fp, #12
	sub	r3, r3, #392
	strh	r2, [r3]	@ movhi
	ldr	r0, .L101+64
	bl	step_hash
	ldr	r3, .L101+68
	ldr	r2, [r3, #108]
	ldr	r3, .L101+72
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-416]
	and	r3, r3, r1
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	sub	r3, fp, #12
	sub	r3, r3, #392
	ldrh	r1, [r3]
	ldr	r3, [fp, #-416]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L101+24
	ldr	r4, [r2]
	mov	r2, r3
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	ldr	r0, .L101+76
	bl	step_hash
	sub	r3, fp, #12
	sub	r3, r3, #392
	ldrh	r3, [r3]
	ldr	r2, [fp, #-416]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-416]
	cmp	r3, r2
	bne	.L67
	ldr	r2, .L101+80
	sub	r3, fp, #100
	mov	r1, r2
	mov	r2, #84
	mov	r0, r3
	bl	memcpy
	mov	r0, #660
	bl	step_hash
	ldr	r3, .L101+68
	ldr	r3, [r3, #8]
	and	r3, r3, #255
	ldr	r2, [fp, #-416]
	mov	r1, r3
	ldr	r0, [fp, #-372]
	bl	func_43
	mov	r3, r0
	cmp	r3, #0
	bne	.L68
	ldr	r3, [fp, #-416]
	cmp	r3, #0
	beq	.L69
.L68:
	mov	r3, #1
	b	.L70
.L69:
	mov	r3, #0
.L70:
	mov	r2, r3
	ldr	r3, [fp, #-420]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-400]
	and	r3, r3, r2
	str	r3, [fp, #-400]
	b	.L59
.L67:
	ldr	r3, .L101+84
	sub	ip, fp, #228
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stmia	ip!, {r0, r1}
	strb	r2, [ip]
	ldr	r3, .L101+88
	sub	ip, fp, #140
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	mvn	r3, #0
	str	r3, [fp, #-360]
	mov	r3, #4
	str	r3, [fp, #-356]
	ldr	r3, .L101+92
	str	r3, [fp, #-352]
	mvn	r3, #0
	str	r3, [fp, #-348]
	mov	r3, #2
	str	r3, [fp, #-344]
	mov	r3, #0
	str	r3, [fp, #-384]
	b	.L72
.L73:
	ldr	r3, [fp, #-384]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, .L101+96
	str	r2, [r3, #-256]
	ldr	r3, [fp, #-384]
	add	r3, r3, #1
	str	r3, [fp, #-384]
.L72:
	ldr	r3, [fp, #-384]
	cmp	r3, #3
	ble	.L73
	ldr	r0, .L101+100
	bl	step_hash
	ldr	r3, .L101+104
	mov	r2, #17
	str	r2, [r3]
	b	.L74
.L94:
	mov	r3, #0
	str	r3, [fp, #-380]
	b	.L75
.L76:
	ldr	r3, [fp, #-380]
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, .L101+108
	str	r2, [r3, #-160]
	ldr	r3, [fp, #-380]
	add	r3, r3, #1
	str	r3, [fp, #-380]
.L75:
	ldr	r3, [fp, #-380]
	cmp	r3, #7
	ble	.L76
	mov	r0, #672
	bl	step_hash
	ldr	r3, [fp, #-372]
	ldr	r2, [r3]
	ldr	r3, [fp, #-420]
	ldr	r3, [r3]
	cmp	r2, r3
	ble	.L77
	ldr	r3, .L101+112
	str	r3, [fp, #-308]
	ldr	r0, .L101+116
	bl	step_hash
	ldr	r3, [fp, #-372]
	ldr	r2, .L101+120
	str	r2, [r3]
	ldr	r0, .L101+124
	bl	step_hash
	ldr	r3, [fp, #-308]
	b	.L98
.L77:
	ldr	r0, .L101+128
	bl	step_hash
	ldr	r3, [fp, #-372]
	ldr	r2, [r3]
	ldrsb	r3, [fp, #-211]
	mov	r1, r3
	ldr	r3, .L101+132
	ldrb	r3, [r3]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	sub	r3, r1, r3
	and	r2, r2, r3
	ldr	r3, [fp, #-372]
	str	r2, [r3]
	ldr	r0, .L101+136
	bl	step_hash
	ldr	r3, .L101+140
	mov	r2, #0
	strb	r2, [r3]
	b	.L79
.L82:
	ldr	r3, .L101+132
	mov	r2, #0
	strb	r2, [r3]
	b	.L80
.L81:
	ldr	r3, .L101+140
	ldrsb	r3, [r3]
	mov	r0, r3
	ldr	r3, .L101+132
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r2, .L101+68
	lsl	r3, r0, #3
	add	r3, r3, r1
	ldr	r1, .L101+144
	str	r1, [r2, r3, lsl #2]
	ldr	r3, .L101+132
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L101+132
	strb	r2, [r3]
.L80:
	ldr	r3, .L101+132
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #7
	bls	.L81
	ldr	r3, .L101+140
	ldrsb	r3, [r3]
	and	r3, r3, #255
	add	r3, r3, #1
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, .L101+140
	strb	r2, [r3]
.L79:
	ldr	r3, .L101+140
	ldrsb	r3, [r3]
	cmp	r3, #4
	ble	.L82
	ldr	r0, .L101+148
	bl	step_hash
	ldr	r2, [fp, #-116]
	ldr	r3, [fp, #-372]
	str	r2, [r3]
	ldr	r0, .L101+152
	bl	step_hash
	ldr	r3, [fp, #-372]
	mvn	r2, #6
	str	r2, [r3]
	ldr	r0, .L101+156
	bl	step_hash
	mov	r3, #0
	strb	r3, [fp, #-409]
	b	.L83
.L93:
	sub	r3, fp, #400
	str	r3, [fp, #-396]
	sub	r3, fp, #396
	str	r3, [fp, #-340]
	ldr	r3, .L101+160
	str	r3, [fp, #-336]
	mov	r3, #9
	str	r3, [fp, #-332]
	mvn	r3, #7
	str	r3, [fp, #-328]
	ldr	r3, .L101+164
	str	r3, [fp, #-324]
	mov	r3, #0
	str	r3, [fp, #-320]
	ldr	r3, .L101+168
	str	r3, [fp, #-316]
	ldr	r3, .L101+172
	str	r3, [fp, #-312]
	ldr	r0, .L101+176
	bl	step_hash
	ldr	r3, [fp, #-416]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-396]
	ldr	r3, [r3]
	orr	r2, r2, r3
	ldr	r3, [fp, #-372]
	str	r2, [r3]
	ldr	r0, .L101+180
	bl	step_hash
	ldr	r3, .L101+132
	mov	r2, #0
	strb	r2, [r3]
	b	.L84
.L85:
	ldr	r0, .L101+184
	bl	step_hash
	ldr	r3, .L101+188
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-420]
	bl	func_47
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-372]
	str	r2, [r3]
	ldr	r3, .L101+132
	ldrb	r3, [r3]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L101+132
	strb	r2, [r3]
.L84:
	ldr	r3, .L101+132
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L85
	mov	r0, #692
	bl	step_hash
	ldr	r3, .L101+188
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L86
	sub	r3, fp, #12
	sub	r3, r3, #388
	sub	r3, r3, #2
	mvn	r2, #3
	strh	r2, [r3]	@ movhi
	mov	r0, #684
	bl	step_hash
	ldr	r3, .L101+188
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L100
	ldr	r0, .L101+192
	bl	step_hash
	ldr	r3, [fp, #-416]
	orr	r2, r3, #1
	ldr	r3, .L101+196
	ldr	r3, [r3]
	cmp	r2, r3
	movhi	r3, #1
	movls	r3, #0
	and	r2, r3, #255
	sub	r3, fp, #12
	sub	r3, r3, #388
	sub	r3, r3, #2
	strh	r2, [r3]	@ movhi
	ldr	r0, .L101+200
	bl	step_hash
	ldr	r3, .L101+204
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsr	r3, r3, #11
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	sub	r3, fp, #404
	sub	r3, r3, #3
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-396]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L89
	ldr	r3, .L101+208
	ldrh	r3, [r3]
	cmp	r3, #0
	beq	.L89
	mov	r3, #1
	b	.L90
.L89:
	mov	r3, #0
.L90:
	ldr	r1, .L101+212
	cmp	r3, r1
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-396]
	ldr	r3, [r3]
	cmp	r1, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, .L101+216
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r1, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mul	r2, r3, r0
	ldr	r3, [fp, #-372]
	str	r2, [r3]
	b	.L91
.L86:
	ldr	r2, .L101+220
	sub	r3, fp, #100
	mov	r1, r2
	mov	r2, #72
	mov	r0, r3
	bl	memcpy
	mov	r0, #688
	bl	step_hash
	ldr	r3, [fp, #-340]
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, [fp, #-372]
	ldr	r2, [r3]
	ldr	r3, [fp, #-340]
	ldr	r3, [r3]
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r0, .L101+224
	bl	step_hash
	sub	r3, fp, #12
	sub	r3, r3, #392
	sub	r3, r3, #2
	ldrh	r2, [r3]
	sub	r3, fp, #12
	sub	r3, r3, #392
	sub	r3, r3, #2
	sub	r2, r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r0, .L101+228
	bl	step_hash
	ldr	r3, [fp, #-396]
	ldr	r2, [r3]
	ldr	r3, [fp, #-396]
	eor	r2, r2, #1
	str	r2, [r3]
	ldr	r0, .L101+232
	bl	step_hash
	ldr	r3, [fp, #-396]
	ldr	r1, [r3]
	ldr	r3, [fp, #-420]
	ldr	r2, [r3]
	ldr	r3, [fp, #-396]
	eor	r2, r2, r1
	str	r2, [r3]
.L91:
	ldrb	r3, [fp, #-409]	@ zero_extendqisi2
	sub	r3, r3, #1
	and	r3, r3, #255
	strb	r3, [fp, #-409]
.L83:
	sub	r3, fp, #408
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	cmp	r3, #0
	bge	.L93
	b	.L92
.L100:
	nop
.L92:
	ldr	r3, .L101+104
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L101+104
	str	r3, [r2]
.L74:
	ldr	r3, .L101+104
	ldr	r3, [r3]
	cmn	r3, #7
	bne	.L94
	ldr	r0, .L101+236
	bl	step_hash
	ldr	r3, [fp, #-372]
	mov	r2, #65
	str	r2, [r3]
	mov	r0, #696
	bl	step_hash
	ldr	r3, [fp, #-344]
	sub	r3, r3, #1
	str	r3, [fp, #-344]
	ldr	r0, .L101+240
	bl	step_hash
	ldr	r3, .L101+72
	ldrh	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	mvn	r3, #7
	sub	r3, r3, r2
	ldr	r2, .L101+104
	ldr	r2, [r2]
	cmp	r2, #0
	bne	.L95
	ldr	r2, [fp, #-372]
	ldr	r2, [r2]
	cmp	r2, #0
	beq	.L96
.L95:
	mov	r2, #1
	b	.L97
.L96:
	mov	r2, #0
.L97:
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mvn	r3, r3
	and	r3, r3, #255
	sub	r2, r3, #3
	ldr	r3, [fp, #-372]
	str	r2, [r3]
.L59:
	mov	r0, #700
	bl	step_hash
	ldr	r3, [fp, #-420]
.L98:
	ldr	r2, .L101
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L99
	bl	__stack_chk_fail
.L99:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L102:
	.align	2
.L101:
	.word	.LC45
	.word	.LC3
	.word	699
	.word	g_64
	.word	654
	.word	649
	.word	g_214
	.word	g_677
	.word	g_578
	.word	651
	.word	653
	.word	655
	.word	-873250214
	.word	-27923
	.word	2135981913
	.word	657
	.word	658
	.word	g_681
	.word	g_627
	.word	698
	.word	.LC4
	.word	.LC5
	.word	.LC6
	.word	1206239069
	.word	954336462
	.word	694
	.word	g_760
	.word	-447137710
	.word	g_2
	.word	666
	.word	-1813060059
	.word	667
	.word	669
	.word	g_876
	.word	670
	.word	g_319
	.word	-1397322117
	.word	671
	.word	673
	.word	693
	.word	1619220719
	.word	-224942255
	.word	884626981
	.word	2144993201
	.word	677
	.word	682
	.word	681
	.word	g_895
	.word	685
	.word	g_145
	.word	686
	.word	g_1156
	.word	g_73
	.word	677621058
	.word	g_174
	.word	.LC7
	.word	689
	.word	690
	.word	691
	.word	695
	.word	697
	.size	func_13, .-func_13
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_17, %function
func_17:
	@ 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, #32
	str	r0, [fp, #-32]
	str	r1, [fp, #-36]
	str	r3, [fp, #-44]
	mov	r3, r2
	strb	r3, [fp, #-37]
	mov	r3, #0
	strh	r3, [fp, #-22]	@ movhi
	ldr	r3, .L105
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r0, #644
	bl	step_hash
	ldrb	r4, [fp, #-37]	@ zero_extendqisi2
	ldr	r3, .L105+4
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	rsb	r3, r3, #0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #3
	lsl	r3, r3, #24
	asr	r5, r3, #24
	mov	r0, #1
	bl	func_59
	mov	r2, #0
	mov	r1, r5
	mov	r0, r4
	bl	func_50
	mov	r2, r0
	ldr	r3, .L105+8
	ldr	r3, [r3]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	func_47
	ldrh	r3, [fp, #-22]
	cmp	r3, #1
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	ldrh	r1, [fp, #-22]
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	bl	func_22
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	ldr	r2, .L105+12
	ldr	r2, [r2, #92]
	mov	r1, r3
	bl	func_43
	mov	r2, #0
	ldr	r3, [fp, #-16]
	orr	r3, r3, r2
	str	r3, [fp, #-16]
	ldr	r0, .L105+16
	bl	step_hash
	ldr	r3, [fp, #-20]
	mov	r0, r3
	sub	sp, fp, #12
	@ sp needed
	pop	{r4, r5, fp, pc}
.L106:
	.align	2
.L105:
	.word	19140501
	.word	g_2
	.word	g_895
	.word	g_681
	.word	645
	.size	func_17, .-func_17
	.section	.rodata
	.align	2
.LC46:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_22, %function
func_22:
	@ 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]
	mov	r3, r2
	strh	r3, [fp, #-30]	@ movhi
	ldr	r3, .L113
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, .L113+4
	str	r3, [fp, #-16]
	mov	r0, #11
	bl	step_hash
	mvn	r3, #26
	strh	r3, [fp, #-30]	@ movhi
	ldrsh	r3, [fp, #-30]
	cmp	r3, #1
	bgt	.L108
	mov	r0, #10
	bl	step_hash
	ldr	r3, [fp, #-16]
	b	.L109
.L108:
	mov	r0, #17
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L110
.L111:
	ldr	r3, .L113+8
	str	r3, [fp, #-20]
	sub	r3, fp, #20
	str	r3, [fp, #-12]
	mov	r0, #15
	bl	step_hash
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	mov	r0, #16
	bl	step_hash
	ldr	r3, [fp, #-12]
	ldr	r2, [r3]
	ldr	r3, .L113+4
	ldr	r3, [r3]
	orr	r2, r2, r3
	ldr	r3, [fp, #-12]
	str	r2, [r3]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L110:
	ldr	r3, [fp, #-28]
	cmp	r3, #19
	bne	.L111
	mov	r0, #18
	bl	step_hash
	ldr	r3, .L113+4
.L109:
	ldr	r2, .L113
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L112
	bl	__stack_chk_fail
.L112:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L114:
	.align	2
.L113:
	.word	.LC46
	.word	g_2
	.word	-1667394557
	.size	func_22, .-func_22
	.section	.rodata
	.align	2
.LC8:
	.ascii	"\341\377\271\377"
	.ascii	"\341\377\271\377"
	.ascii	"\341\377\271\377"
	.ascii	"\341\377\271\377"
	.ascii	"\341\377\271\377"
	.ascii	"\341\377\271\377"
	.align	2
.LC9:
	.word	g_578
	.word	g_2
	.word	0
	.word	0
	.word	g_578
	.word	g_2
	.word	0
	.word	0
	.word	g_578
	.word	g_2
	.word	0
	.word	0
	.word	g_578
	.word	g_2
	.word	0
	.word	0
	.word	g_578
	.word	g_2
	.word	0
	.word	0
	.word	g_578
	.word	g_2
	.word	0
	.word	0
	.align	2
.LC47:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_43, %function
func_43:
	@ args = 0, pretend = 0, frame = 312
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #316
	str	r0, [fp, #-312]
	mov	r3, r1
	str	r2, [fp, #-320]
	strb	r3, [fp, #-313]
	ldr	r3, .L138
	ldr	r3, [r3]
	str	r3, [fp, #-16]
	mov	r3,#0
	mvn	r3, #0
	str	r3, [fp, #-292]
	mov	r3, #2
	str	r3, [fp, #-288]
	ldr	r3, .L138+4
	str	r3, [fp, #-284]
	mov	r3, #0
	str	r3, [fp, #-280]
	ldr	r3, .L138+8
	str	r3, [fp, #-276]
	ldr	r3, .L138+12
	str	r3, [fp, #-272]
	ldr	r3, .L138+16
	sub	ip, fp, #252
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	sub	r3, fp, #12
	sub	r3, r3, #292
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	mvn	r3, #97
	strb	r3, [fp, #-306]
	mov	r3, #0
	str	r3, [fp, #-300]
	b	.L116
.L119:
	mov	r3, #0
	str	r3, [fp, #-296]
	b	.L117
.L118:
	ldr	r2, [fp, #-300]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-296]
	add	r3, r3, r2
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	ldr	r2, .L138+20
	str	r2, [r3, #-184]
	ldr	r3, [fp, #-296]
	add	r3, r3, #1
	str	r3, [fp, #-296]
.L117:
	ldr	r3, [fp, #-296]
	cmp	r3, #2
	ble	.L118
	ldr	r3, [fp, #-300]
	add	r3, r3, #1
	str	r3, [fp, #-300]
.L116:
	ldr	r3, [fp, #-300]
	cmp	r3, #6
	ble	.L119
	mov	r3, #0
	str	r3, [fp, #-300]
	b	.L120
.L123:
	mov	r3, #0
	str	r3, [fp, #-296]
	b	.L121
.L122:
	ldr	r2, [fp, #-300]
	ldr	r3, [fp, #-296]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #12
	add	r3, r2, r3
	mvn	r2, #2
	str	r2, [r3, #-216]
	ldr	r3, [fp, #-296]
	add	r3, r3, #1
	str	r3, [fp, #-296]
.L121:
	ldr	r3, [fp, #-296]
	cmp	r3, #0
	ble	.L122
	ldr	r3, [fp, #-300]
	add	r3, r3, #1
	str	r3, [fp, #-300]
.L120:
	ldr	r3, [fp, #-300]
	cmp	r3, #7
	ble	.L123
	ldr	r0, .L138+24
	bl	step_hash
	ldrb	r2, [fp, #-313]	@ zero_extendqisi2
	ldr	r3, [fp, #-292]
	ldr	r1, [fp, #-320]
	cmp	r1, r3
	movcs	r3, #1
	movcc	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-320]
	and	r3, r3, r1
	cmp	r2, r3
	movcc	r3, #1
	movcs	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-313]	@ zero_extendqisi2
	add	r3, r2, r3
	cmp	r3, #0
	beq	.L124
	ldr	r3, .L138+28
	str	r3, [fp, #-256]
	ldr	r2, .L138+32
	sub	r3, fp, #112
	mov	r1, r2
	mov	r2, #96
	mov	r0, r3
	bl	memcpy
	ldr	r0, .L138+36
	bl	step_hash
	ldr	r3, .L138+40
	ldrh	r3, [r3]
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L138+40
	strh	r3, [r2]	@ movhi
	mov	r0, #628
	bl	step_hash
	ldr	r3, [fp, #-312]
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r0, [fp, #-256]
	bl	func_47
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-256]
	str	r2, [r3]
	ldr	r0, .L138+44
	bl	step_hash
	ldr	r3, .L138+48
	mov	r2, #0
	str	r2, [r3]
	nop
	ldr	r3, .L138+48
	ldr	r3, [r3]
	cmp	r3, #29
	bls	.L130
	sub	r3, fp, #12
	sub	r3, r3, #288
	sub	r3, r3, #2
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r0, #632
	bl	step_hash
	sub	r3, fp, #12
	sub	r3, r3, #288
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L137
	ldr	r0, .L138+52
	bl	step_hash
	ldr	r3, .L138+28
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	b	.L135
.L124:
	ldr	r3, .L138+56
	str	r3, [fp, #-268]
	mvn	r3, #88
	strb	r3, [fp, #-305]
	ldr	r3, .L138+60
	str	r3, [fp, #-264]
	ldr	r3, .L138+64
	str	r3, [fp, #-260]
	mov	r0, #636
	bl	step_hash
	ldr	r3, [fp, #-268]
	ldr	r2, .L138+68
	cmp	r3, r2
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, .L138+72
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L138+76
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, .L138+80
	ldr	r3, [r3]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mul	r3, r4, r3
	cmp	r3, #148
	ble	.L131
	ldr	r3, [fp, #-264]
	cmp	r3, #0
	beq	.L131
	mov	r3, #1
	b	.L132
.L131:
	mov	r3, #0
.L132:
	mvn	r2, r3
	ldr	r3, .L138+84
	ldr	r3, [r3]
	cmp	r2, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L138+72
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-260]
	ldr	r0, .L138+88
	bl	step_hash
	ldr	r3, .L138+92
	str	r3, [fp, #-260]
	ldr	r0, .L138+96
	bl	step_hash
	ldr	r3, .L138+100
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	b	.L135
.L137:
	nop
.L130:
	mov	r0, #640
	bl	step_hash
	ldrb	r0, [fp, #-313]	@ zero_extendqisi2
	ldr	r3, .L138+72
	ldr	r3, [r3]
	eor	r3, r3, #5
	mov	r1, r3
	ldr	r3, [fp, #-272]
	cmp	r3, #0
	bne	.L133
	ldr	r3, .L138+104
	b	.L134
.L133:
	ldr	r3, .L138+108
.L134:
	mov	r2, r3
	bl	func_22
	mov	r2, r0
	ldr	r3, [fp, #-312]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	func_47
	mov	r3, r0
	and	r3, r3, #255
	strb	r3, [fp, #-240]
	ldr	r0, .L138+112
	bl	step_hash
	sub	r3, fp, #12
	sub	r3, r3, #292
	ldrh	r2, [r3]
	sub	r3, fp, #12
	sub	r3, r3, #292
	add	r2, r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r0, .L138+116
	bl	step_hash
	ldr	r3, [fp, #-208]
	sub	r3, r3, #1
	str	r3, [fp, #-208]
	ldr	r0, .L138+120
	bl	step_hash
	ldr	r3, .L138+80
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
.L135:
	ldr	r2, .L138
	ldr	r1, [r2]
	ldr	r2, [fp, #-16]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L136
	bl	__stack_chk_fail
.L136:
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L139:
	.align	2
.L138:
	.word	.LC47
	.word	1773212387
	.word	1794584804
	.word	g_215+52
	.word	.LC8
	.word	g_677
	.word	639
	.word	g_578
	.word	.LC9
	.word	627
	.word	g_1077
	.word	634
	.word	g_145
	.word	633
	.word	g_215+4
	.word	-1209640093
	.word	-780811679
	.word	g_215+40
	.word	g_891
	.word	g_64
	.word	g_1001
	.word	g_760
	.word	637
	.word	-644186021
	.word	638
	.word	g_363
	.word	-3264
	.word	-3232
	.word	641
	.word	642
	.word	643
	.size	func_43, .-func_43
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_47, %function
func_47:
	@ 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	r0, .L145
	bl	step_hash
	ldr	r3, .L145+4
	ldr	r3, [r3]
	sub	r2, fp, #12
	str	r2, [r3]
	ldr	r0, .L145+8
	bl	step_hash
	ldr	r3, .L145+12
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	nop
	ldr	r3, .L145+12
	ldrsh	r3, [r3]
	cmp	r3, #16
	bne	.L144
	ldr	r0, .L145+16
	bl	step_hash
	ldr	r3, .L145+4
	ldr	r3, [r3]
	sub	r2, fp, #12
	str	r2, [r3]
	ldr	r0, .L145+20
	bl	step_hash
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	b	.L142
.L144:
	mov	r0, #624
	bl	step_hash
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	asr	r3, r3, #16
.L142:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L146:
	.align	2
.L145:
	.word	617
	.word	g_214
	.word	623
	.word	g_174
	.word	621
	.word	622
	.size	func_47, .-func_47
	.global	__aeabi_idiv
	.global	__aeabi_uidivmod
	.section	.rodata
	.align	2
.LC10:
	.word	-822766171
	.word	-5
	.word	-822766171
	.word	-5
	.word	-822766171
	.word	-5
	.word	-822766171
	.word	-5
	.word	-822766171
	.word	-5
	.word	-822766171
	.word	-5
	.align	2
.LC11:
	.word	-1
	.word	-581126100
	.word	-1
	.word	-581126100
	.word	-1
	.align	2
.LC12:
	.word	1
	.word	-3
	.word	1
	.word	-3
	.word	1
	.word	1
	.word	1
	.word	-3
	.word	1
	.word	-3
	.word	1
	.word	1
	.word	1
	.word	-3
	.word	1
	.word	-3
	.word	1
	.word	1
	.word	1
	.word	-3
	.word	1
	.word	-3
	.word	1
	.word	1
	.word	1
	.word	-3
	.word	1
	.word	-3
	.word	1
	.word	1
	.word	1
	.word	-3
	.word	1
	.word	-3
	.word	1
	.word	1
	.align	2
.LC13:
	.word	g_214
	.word	g_214
	.word	g_214
	.word	g_214
	.word	g_214
	.align	2
.LC14:
	.word	-1
	.word	1764295539
	.word	1
	.word	-1
	.word	1764295539
	.word	1
	.word	-1
	.word	1764295539
	.word	1
	.word	-1
	.word	1764295539
	.word	1
	.word	-1
	.word	1764295539
	.word	1
	.word	-1
	.word	1764295539
	.word	1
	.word	-1
	.word	1764295539
	.word	1
	.align	2
.LC15:
	.word	0
	.word	0
	.word	-4
	.word	0
	.word	0
	.word	-4
	.align	2
.LC16:
	.word	-715721868
	.word	-715721868
	.word	787356812
	.word	-715721868
	.word	-715721868
	.word	787356812
	.word	-715721868
	.word	-715721868
	.word	787356812
	.word	-715721868
	.word	-715721868
	.word	787356812
	.word	-715721868
	.word	-715721868
	.word	787356812
	.word	-715721868
	.word	-715721868
	.word	787356812
	.word	-715721868
	.word	-715721868
	.word	787356812
	.word	-715721868
	.word	-715721868
	.word	787356812
	.align	2
.LC17:
	.ascii	"\221\032\221\032\221\032\221\032\221"
	.ascii	"\221\032\221\032\221\032\221\032\221"
	.ascii	"\221\032\221\032\221\032\221\032\221"
	.ascii	"\221\032\221\032\221\032\221\032\221"
	.ascii	"\221\032\221\032\221\032\221\032\221"
	.ascii	"\221\032\221\032\221\032\221\032\221"
	.ascii	"\221\032\221\032\221\032\221\032\221"
	.align	2
.LC18:
	.ascii	"\001\001\177\001"
	.ascii	"\001\001\177\001"
	.ascii	"\001\001\177\001"
	.align	2
.LC19:
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.word	g_214
	.word	0
	.align	2
.LC20:
	.word	461774256
	.word	461774256
	.word	-1011147240
	.word	461774256
	.word	461774256
	.word	-1011147240
	.word	461774256
	.word	461774256
	.word	461774256
	.word	-1011147240
	.word	461774256
	.word	461774256
	.word	-1011147240
	.word	461774256
	.word	461774256
	.word	461774256
	.word	-1011147240
	.word	461774256
	.word	461774256
	.word	-1011147240
	.word	461774256
	.align	2
.LC23:
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.short	-10
	.short	21935
	.short	-10
	.align	2
.LC24:
	.word	588176436
	.word	-1597709883
	.word	588176436
	.word	-1597709883
	.word	588176436
	.word	-1597709883
	.word	588176436
	.word	-1597709883
	.word	588176436
	.word	-1597709883
	.word	588176436
	.word	-1597709883
	.word	588176436
	.word	-1597709883
	.align	2
.LC25:
	.word	-1
	.word	101582982
	.word	-1
	.word	101582982
	.word	-1
	.word	101582982
	.word	-1
	.word	101582982
	.word	-1
	.align	2
.LC26:
	.word	-6
	.word	-6
	.word	1
	.word	-6
	.word	-6
	.word	1
	.align	2
.LC27:
	.word	1
	.word	-2057229603
	.word	0
	.word	1
	.word	-2057229603
	.word	0
	.word	1
	.word	-2057229603
	.word	0
	.word	1
	.word	-2057229603
	.word	0
	.align	2
.LC28:
	.word	-8
	.word	-1750104537
	.word	1
	.word	-8
	.word	-1750104537
	.word	1
	.word	-8
	.word	-1750104537
	.word	1
	.word	-8
	.word	-1750104537
	.word	1
	.word	-8
	.word	-1750104537
	.word	1
	.word	-8
	.word	-1750104537
	.word	1
	.word	-8
	.word	-1750104537
	.word	1
	.align	2
.LC29:
	.word	-1
	.word	1676148460
	.word	1
	.word	-1681344761
	.word	1
	.word	1676148460
	.word	-1
	.word	-1148108054
	.word	-1
	.word	1676148460
	.word	1
	.word	-1681344761
	.word	1
	.word	1676148460
	.word	-1
	.word	-1148108054
	.word	-1
	.word	1676148460
	.word	1
	.word	-1681344761
	.word	1
	.word	1676148460
	.word	-1
	.word	-1148108054
	.word	-1
	.word	1676148460
	.word	1
	.word	-1681344761
	.word	1
	.word	1676148460
	.word	-1
	.word	-1148108054
	.align	2
.LC30:
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.word	-1237442234
	.align	2
.LC48:
	.ascii	"\001'\001'\001'"
	.align	2
.LC31:
	.word	0
	.word	-1
	.word	0
	.word	-1
	.word	0
	.word	-1
	.word	0
	.word	-1
	.align	2
.LC32:
	.word	0
	.word	0
	.word	2043159851
	.word	0
	.word	0
	.word	2043159851
	.word	0
	.word	0
	.word	2043159851
	.align	2
.LC33:
	.word	-6
	.word	-1
	.word	-6
	.word	-1
	.align	2
.LC34:
	.word	-943600604
	.word	1
	.word	-939066229
	.word	1
	.word	-943600604
	.word	-943600604
	.word	1
	.word	-939066229
	.word	1
	.word	-943600604
	.word	-943600604
	.word	1
	.word	-939066229
	.word	1
	.word	-943600604
	.align	2
.LC35:
	.short	-1
	.short	-7
	.short	-1
	.short	-7
	.short	-1
	.short	-7
	.short	-1
	.short	-7
	.short	-1
	.short	-7
	.short	-1
	.short	-7
	.align	2
.LC49:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_50, %function
func_50:
	@ args = 0, pretend = 0, frame = 2600
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #2592
	sub	sp, sp, #8
	str	r0, [fp, #-2616]
	mov	r3, r1
	strb	r3, [fp, #-2617]
	mov	r3, r2
	strb	r3, [fp, #-2618]
	ldr	r3, .L437
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, .L437+4
	str	r3, [fp, #-2308]
	ldr	r3, .L437+8
	sub	ip, fp, #1360
	sub	ip, ip, #4
	sub	ip, ip, #12
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	ldr	r2, .L437+12
	strh	r2, [r3]	@ movhi
	ldr	r3, .L437+16
	str	r3, [fp, #-2312]
	mov	r3, #8
	str	r3, [fp, #-2548]
	ldr	r3, .L437+20
	str	r3, [fp, #-2304]
	mov	r3, #0
	str	r3, [fp, #-2316]
	mov	r3, #50
	strb	r3, [fp, #-2605]
	ldr	r3, .L437+24
	str	r3, [fp, #-2544]
	mvn	r3, #0
	str	r3, [fp, #-2320]
	mvn	r3, #13
	strb	r3, [fp, #-2604]
	ldr	r3, .L437+28
	sub	ip, fp, #1568
	sub	ip, ip, #4
	sub	ip, ip, #12
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	mov	r3, #0
	str	r3, [fp, #-2540]
	ldr	r3, .L437+32
	str	r3, [fp, #-2324]
	ldr	r3, .L437+36
	str	r3, [fp, #-2332]
	ldr	r3, .L437+40
	str	r3, [fp, #-2328]
	ldr	r3, .L437+44
	str	r3, [fp, #-2536]
	ldr	r3, .L437+48
	str	r3, [fp, #-2532]
	ldr	r2, .L437+52
	sub	r3, fp, #968
	mov	r1, r2
	mov	r2, #144
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #12
	mov	r2, #6016
	strh	r2, [r3]	@ movhi
	ldr	r3, .L437+56
	str	r3, [fp, #-2300]
	ldr	r3, .L437+60
	str	r3, [fp, #-2296]
	mvn	r3, #11
	strb	r3, [fp, #-2603]
	ldr	r3, .L437+64
	str	r3, [fp, #-356]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-352]
	ldr	r3, .L437+316
	str	r3, [fp, #-348]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-344]
	ldr	r3, .L437+64
	str	r3, [fp, #-340]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-336]
	ldr	r3, .L437+68
	str	r3, [fp, #-332]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-328]
	ldr	r3, .L437+64
	str	r3, [fp, #-324]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-320]
	ldr	r3, .L437+64
	str	r3, [fp, #-316]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-312]
	ldr	r3, .L437+316
	str	r3, [fp, #-308]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-304]
	ldr	r3, .L437+64
	str	r3, [fp, #-300]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-296]
	ldr	r3, .L437+68
	str	r3, [fp, #-292]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-288]
	ldr	r3, .L437+64
	str	r3, [fp, #-284]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-280]
	ldr	r3, .L437+64
	str	r3, [fp, #-276]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-272]
	ldr	r3, .L437+316
	str	r3, [fp, #-268]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-264]
	ldr	r3, .L437+64
	str	r3, [fp, #-260]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-256]
	ldr	r3, .L437+68
	str	r3, [fp, #-252]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-248]
	ldr	r3, .L437+64
	str	r3, [fp, #-244]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-240]
	ldr	r3, .L437+64
	str	r3, [fp, #-236]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-232]
	ldr	r3, .L437+316
	str	r3, [fp, #-228]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-224]
	ldr	r3, .L437+64
	str	r3, [fp, #-220]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-216]
	ldr	r3, .L437+68
	str	r3, [fp, #-212]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-208]
	ldr	r3, .L437+64
	str	r3, [fp, #-204]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-200]
	ldr	r3, .L437+64
	str	r3, [fp, #-196]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-192]
	ldr	r3, .L437+316
	str	r3, [fp, #-188]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-184]
	ldr	r3, .L437+64
	str	r3, [fp, #-180]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-176]
	ldr	r3, .L437+68
	str	r3, [fp, #-172]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-168]
	ldr	r3, .L437+64
	str	r3, [fp, #-164]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-160]
	ldr	r3, .L437+64
	str	r3, [fp, #-156]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-152]
	ldr	r3, .L437+316
	str	r3, [fp, #-148]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-144]
	ldr	r3, .L437+64
	str	r3, [fp, #-140]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-136]
	ldr	r3, .L437+68
	str	r3, [fp, #-132]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-128]
	ldr	r3, .L437+64
	str	r3, [fp, #-124]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-120]
	ldr	r3, .L437+64
	str	r3, [fp, #-116]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-112]
	ldr	r3, .L437+316
	str	r3, [fp, #-108]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-104]
	ldr	r3, .L437+64
	str	r3, [fp, #-100]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-96]
	ldr	r3, .L437+68
	str	r3, [fp, #-92]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-88]
	ldr	r3, .L437+64
	str	r3, [fp, #-84]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-80]
	ldr	r3, .L437+64
	str	r3, [fp, #-76]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-72]
	ldr	r3, .L437+316
	str	r3, [fp, #-68]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-64]
	ldr	r3, .L437+64
	str	r3, [fp, #-60]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-56]
	ldr	r3, .L437+68
	str	r3, [fp, #-52]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-48]
	ldr	r3, .L437+64
	str	r3, [fp, #-44]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-40]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-2292]
	mov	r3, #0
	str	r3, [fp, #-1448]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1444]
	mov	r3, #0
	str	r3, [fp, #-1440]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1436]
	mov	r3, #0
	str	r3, [fp, #-1432]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1428]
	mov	r3, #0
	str	r3, [fp, #-1424]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1420]
	mov	r3, #0
	str	r3, [fp, #-1416]
	mov	r3, #0
	str	r3, [fp, #-2288]
	sub	r3, fp, #20
	sub	r3, r3, #2560
	mvn	r2, #8
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-2284]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-644]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-640]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-636]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-632]
	mov	r3, #0
	str	r3, [fp, #-628]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-624]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-620]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-616]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-612]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-608]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-604]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-600]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-596]
	mov	r3, #0
	str	r3, [fp, #-592]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-588]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-584]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-580]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-576]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-572]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-568]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-564]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-560]
	mov	r3, #0
	str	r3, [fp, #-556]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-552]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-548]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-544]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-540]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-536]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-532]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-528]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-524]
	mov	r3, #0
	str	r3, [fp, #-520]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-516]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-512]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-508]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-504]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-500]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-496]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-492]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-488]
	mov	r3, #0
	str	r3, [fp, #-484]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-480]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-476]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-472]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-468]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-464]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-460]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-456]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-452]
	mov	r3, #0
	str	r3, [fp, #-448]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-444]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-440]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-436]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-432]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-428]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-424]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-420]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-416]
	mov	r3, #0
	str	r3, [fp, #-412]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-408]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-404]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-400]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-396]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-392]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-388]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-384]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-380]
	mov	r3, #0
	str	r3, [fp, #-376]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-372]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-368]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-364]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-360]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-2280]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-2276]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-2272]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-2268]
	mov	r3, #0
	str	r3, [fp, #-2336]
	b	.L148
.L149:
	sub	r2, fp, #36
	ldr	r3, [fp, #-2336]
	add	r3, r2, r3
	mov	r2, #32
	strb	r2, [r3]
	ldr	r3, [fp, #-2336]
	add	r3, r3, #1
	str	r3, [fp, #-2336]
.L148:
	ldr	r3, [fp, #-2336]
	cmp	r3, #0
	ble	.L149
	mov	r3, #0
	str	r3, [fp, #-2336]
	b	.L150
.L151:
	ldr	r3, [fp, #-2336]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #2528
	sub	r2, r2, #4
	sub	r2, r2, #4
	str	r2, [r3, #-1588]
	ldr	r3, [fp, #-2336]
	add	r3, r3, #1
	str	r3, [fp, #-2336]
.L150:
	ldr	r3, [fp, #-2336]
	cmp	r3, #0
	ble	.L151
	mov	r3, #0
	str	r3, [fp, #-2336]
	b	.L152
.L153:
	ldr	r3, [fp, #-2336]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L437+316
	str	r2, [r3, #-1580]
	ldr	r3, [fp, #-2336]
	add	r3, r3, #1
	str	r3, [fp, #-2336]
.L152:
	ldr	r3, [fp, #-2336]
	cmp	r3, #1
	ble	.L153
	ldr	r0, .L437+72
	bl	step_hash
	ldr	r3, [fp, #-2308]
	cmp	r3, #0
	beq	.L154
	ldr	r3, .L437+316
	str	r3, [fp, #-2192]
	ldr	r3, .L437+76
	str	r3, [fp, #-2412]
	mvn	r3, #4
	strb	r3, [fp, #-2600]
	ldr	r3, .L437+80
	sub	ip, fp, #1504
	sub	ip, ip, #4
	sub	ip, ip, #4
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #4
	ldr	r2, .L437+84
	strh	r2, [r3]	@ movhi
	ldr	r2, .L437+88
	sub	r3, fp, #1168
	sub	r3, r3, #4
	sub	r3, r3, #8
	mov	r1, r2
	mov	r2, #84
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #2
	ldr	r2, .L437+92
	strh	r2, [r3]	@ movhi
	mvn	r3, #0
	strb	r3, [fp, #-2599]
	ldr	r3, .L437+96
	sub	ip, fp, #1472
	sub	ip, ip, #4
	sub	ip, ip, #4
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	ldr	r3, .L437+100
	str	r3, [fp, #-2408]
	mvn	r3, #0
	str	r3, [fp, #-2188]
	mov	r3, #0
	str	r3, [fp, #-2184]
	mov	r3, #0
	str	r3, [fp, #-2404]
	b	.L155
.L156:
	ldr	r3, [fp, #-2404]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L437+316
	str	r2, [r3, #-1524]
	ldr	r3, [fp, #-2404]
	add	r3, r3, #1
	str	r3, [fp, #-2404]
.L155:
	ldr	r3, [fp, #-2404]
	cmp	r3, #4
	ble	.L156
	mov	r3, #0
	str	r3, [fp, #-2404]
	b	.L157
.L160:
	mov	r3, #0
	str	r3, [fp, #-2400]
	b	.L158
.L159:
	sub	r3, fp, #20
	sub	r3, r3, #1568
	sub	r3, r3, #4
	ldr	r2, [fp, #-2404]
	lsl	r1, r2, #2
	ldr	r2, [fp, #-2400]
	add	r2, r1, r2
	lsl	r2, r2, #1
	add	r3, r3, r2
	mov	r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-2400]
	add	r3, r3, #1
	str	r3, [fp, #-2400]
.L158:
	ldr	r3, [fp, #-2400]
	cmp	r3, #3
	ble	.L159
	ldr	r3, [fp, #-2404]
	add	r3, r3, #1
	str	r3, [fp, #-2404]
.L157:
	ldr	r3, [fp, #-2404]
	cmp	r3, #0
	ble	.L160
	mov	r0, #138
	bl	step_hash
	ldr	r3, [fp, #-2412]
	sub	r3, r3, #1
	str	r3, [fp, #-2412]
	mov	r0, #212
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2308]
	b	.L161
.L193:
	ldr	r3, .L437+104
	str	r3, [fp, #-1944]
	mov	r3, #0
	str	r3, [fp, #-1940]
	mvn	r3, #4
	str	r3, [fp, #-1936]
	mvn	r3, #0
	str	r3, [fp, #-1932]
	ldr	r3, .L437+108
	str	r3, [fp, #-2396]
	ldr	r2, .L437+112
	sub	r3, fp, #824
	mov	r1, r2
	mov	r2, #96
	mov	r0, r3
	bl	memcpy
	mov	r3, #2
	strb	r3, [fp, #-2607]
	ldr	r3, .L437+116
	sub	ip, fp, #1312
	sub	ip, ip, #4
	sub	ip, ip, #12
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2}
	strh	r3, [ip]	@ movhi
	add	ip, ip, #2
	lsr	r3, r3, #16
	strb	r3, [ip]
	ldr	r2, .L437+120
	sub	r3, fp, #1552
	sub	r3, r3, #4
	sub	r3, r3, #8
	ldm	r2, {r0, r1, r2}
	stm	r3, {r0, r1, r2}
	ldr	r3, .L437+124
	str	r3, [fp, #-1928]
	mov	r0, #209
	bl	step_hash
	ldr	r3, .L437+316
	mov	r2, #0
	str	r2, [r3]
	b	.L162
.L192:
	ldr	r2, .L437+128
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r1, r2
	mov	r2, #80
	mov	r0, r3
	bl	memcpy
	mvn	r3, #6
	str	r3, [fp, #-1924]
	ldr	r2, .L437+132
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r2
	mov	r2, #84
	mov	r0, r3
	bl	memcpy
	mov	r3, #1
	strb	r3, [fp, #-2595]
	mov	r0, #169
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2312]
	b	.L163
.L178:
	ldr	r3, .L437+136
	str	r3, [fp, #-1904]
	ldr	r3, .L437+64
	str	r3, [fp, #-1900]
	ldr	r3, .L437+140
	str	r3, [fp, #-1896]
	mov	r3, #1
	str	r3, [fp, #-1892]
	mov	r3, #1
	str	r3, [fp, #-1888]
	mov	r3, #28
	strb	r3, [fp, #-2592]
	mov	r3, #9
	strb	r3, [fp, #-2591]
	mov	r3, #0
	str	r3, [fp, #-2392]
	b	.L164
.L165:
	ldr	r3, [fp, #-2392]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L437+144
	str	r2, [r3, #-1584]
	ldr	r3, [fp, #-2392]
	add	r3, r3, #1
	str	r3, [fp, #-2392]
.L164:
	ldr	r3, [fp, #-2392]
	cmp	r3, #0
	ble	.L165
	mov	r0, #152
	bl	step_hash
	ldr	r3, .L437+416
	mvn	r2, #2
	strh	r2, [r3]	@ movhi
	b	.L166
.L167:
	ldr	r3, .L437+148
	str	r3, [fp, #-1832]
	mov	r0, #151
	bl	step_hash
	ldr	r3, [fp, #-1832]
	add	r3, r3, #1
	str	r3, [fp, #-1832]
	ldr	r3, .L437+416
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L437+416
	strh	r3, [r2]	@ movhi
.L166:
	ldr	r3, .L437+416
	ldrh	r3, [r3]
	cmp	r3, #25
	bls	.L167
	mov	r0, #160
	bl	step_hash
	ldr	r3, .L437+232
	ldrsh	r3, [r3]
	mov	r2, r3
	ldr	r3, .L437+344
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-1904]
	cmp	r3, r1
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-1224]
	cmp	r3, #0
	beq	.L168
	mov	r3, #2
	b	.L169
.L168:
	mov	r3, #0
.L169:
	cmp	r3, r2
	bge	.L170
	mov	r0, #154
	bl	step_hash
	mov	r3, #1
	str	r3, [fp, #-1348]
	mov	r0, #155
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r2, [fp, #-1900]
	str	r2, [r3]
	b	.L171
.L170:
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-1884]
	ldr	r3, .L437+152
	str	r3, [fp, #-1880]
	mvn	r3, #8
	str	r3, [fp, #-1876]
	ldr	r3, .L437+156
	str	r3, [fp, #-1872]
	mvn	r3, #0
	str	r3, [fp, #-1868]
	ldr	r3, .L437+160
	str	r3, [fp, #-1864]
	mov	r3, #0
	str	r3, [fp, #-1860]
	mov	r3, #0
	str	r3, [fp, #-1856]
	ldr	r3, .L437+164
	str	r3, [fp, #-1852]
	ldr	r3, .L437+168
	str	r3, [fp, #-1848]
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #14
	ldr	r2, .L437+172
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-2388]
	b	.L172
.L438:
	.align	2
.L437:
	.word	.LC49
	.word	804807273
	.word	.LC10
	.word	-25919
	.word	-2127582076
	.word	184377158
	.word	1393886203
	.word	.LC11
	.word	-1487572303
	.word	1598567466
	.word	1310947679
	.word	-1214251171
	.word	g_215+88
	.word	.LC12
	.word	-211424640
	.word	1556329072
	.word	g_2
	.word	g_578
	.word	455
	.word	2142042155
	.word	.LC13
	.word	-6422
	.word	.LC14
	.word	-23286
	.word	.LC15
	.word	-596463630
	.word	-1122833536
	.word	-649367291
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.word	-1414606919
	.word	.LC19
	.word	.LC20
	.word	-789496768
	.word	-1109209077
	.word	345229866
	.word	438606376
	.word	-316270175
	.word	2003752899
	.word	1266475165
	.word	-124642668
	.word	1342882761
	.word	2594
	.word	27722151
	.word	848985394
	.word	37895010
	.word	-1239665434
	.word	g_178
	.word	152031185
	.word	1328992890
	.word	-939195224
	.word	293
	.word	-1473578795
	.word	-978035909
	.word	1133747527
	.word	-799773858
	.word	1482603301
	.word	g_174
	.word	397
	.word	-248575703
	.word	1084113191
	.word	1663560674
	.word	-2085850665
	.word	-1193962053
	.word	1561125204
	.word	-3717
	.word	642100112
	.word	317
	.word	g_145
	.word	g_319
	.word	315
	.word	.LC23
	.word	-1713269241
	.word	306
	.word	1687663767
	.word	103508084
	.word	302
	.word	303
	.word	g_64
	.word	305
	.word	310
	.word	311
	.word	318
	.word	366
	.word	-1973334166
	.word	g_173
	.word	-75472792
	.word	1456315223
	.word	-929526906
	.word	-1987326372
	.word	-944517847
	.word	.LC24
	.word	14403
	.word	335
	.word	g_363
	.word	g_64
	.word	956169945
	.word	.LC25
	.word	325
	.word	330
	.word	395101268
	.word	329
	.word	331
	.word	g_73
	.word	334
	.word	g_214
.L173:
	ldr	r3, [fp, #-2388]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-1392]
	ldr	r3, [fp, #-2388]
	add	r3, r3, #1
	str	r3, [fp, #-2388]
.L172:
	ldr	r3, [fp, #-2388]
	cmp	r3, #6
	ble	.L173
	mov	r0, #157
	bl	step_hash
	ldr	r3, [fp, #-1532]
	str	r3, [fp, #-1884]
	mov	r0, #158
	bl	step_hash
	ldrb	r3, [fp, #-36]	@ zero_extendqisi2
	sub	r3, r3, #1
	and	r3, r3, #255
	strb	r3, [fp, #-36]
	mov	r0, #159
	bl	step_hash
	ldrb	r3, [fp, #-2605]	@ zero_extendqisi2
	sub	r3, r3, #1
	strb	r3, [fp, #-2605]
.L171:
	mov	r0, #168
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L174
	ldr	r3, .L437+176
	str	r3, [fp, #-32]
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #12
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #9
	str	r3, [fp, #-1840]
	ldr	r3, .L437+180
	str	r3, [fp, #-1836]
	mov	r0, #162
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r2, [r3]
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r2, [r2]
	str	r2, [r3]
	mov	r0, #163
	bl	step_hash
	ldrb	r3, [fp, #-2592]
	add	r3, r3, #1
	strb	r3, [fp, #-2592]
	mov	r0, #164
	bl	step_hash
	ldrb	r3, [fp, #-2591]	@ zero_extendqisi2
	sub	r3, r3, #1
	strb	r3, [fp, #-2591]
	mov	r0, #165
	bl	step_hash
	ldr	r3, [fp, #-2396]
	and	r3, r3, #1
	str	r3, [fp, #-2396]
	b	.L175
.L174:
	ldr	r3, .L437+184
	str	r3, [fp, #-1844]
	mov	r0, #167
	bl	step_hash
	ldr	r3, [fp, #-1900]
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mul	r3, r2, r3
	cmp	r3, #0
	beq	.L176
	ldr	r3, .L437+280
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L176
	mov	r3, #1
	b	.L177
.L176:
	mov	r3, #0
.L177:
	and	r3, r3, #255
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #4
	sub	r3, r3, r2
	lsl	r3, r3, #1
	mov	r4, r3
	ldr	r3, [fp, #-1360]
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	cmp	r3, r2
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-1348]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	mov	r1, r3
	mov	r0, r4
	bl	__aeabi_uidiv
	mov	r3, r0
	str	r3, [fp, #-1844]
.L175:
	ldr	r3, [fp, #-2312]
	add	r3, r3, #3
	str	r3, [fp, #-2312]
.L163:
	ldr	r3, [fp, #-2312]
	cmp	r3, #8
	ble	.L178
	mov	r0, #184
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L179
.L184:
	mvn	r3, #83
	strb	r3, [fp, #-2594]
	ldr	r3, .L437+188
	str	r3, [fp, #-1908]
	mov	r0, #173
	bl	step_hash
	ldr	r3, .L437+192
	ldrb	r3, [r3, #19]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L180
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L180
	mov	r3, #1
	b	.L181
.L180:
	mov	r3, #0
.L181:
	strb	r3, [fp, #-2595]
	mov	r0, #174
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2544]
	mov	r0, #183
	bl	step_hash
	ldrb	r3, [fp, #-2594]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L182
	mov	r0, #176
	bl	step_hash
	sub	r3, fp, #2592
	sub	r3, r3, #4
	sub	r3, r3, #11
	ldrsb	r3, [r3]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	ldr	r3, .L437+316
	ldr	r3, [r3]
	ldr	r2, .L437+424
	ldr	r4, [r2]
	mov	r2, #1
	mov	r1, r3
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	mov	r0, #177
	bl	step_hash
	sub	r3, fp, #1536
	sub	r3, r3, #4
	sub	r3, r3, #14
	ldrsb	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-1908]
	orr	r3, r3, r2
	str	r3, [fp, #-1908]
	mov	r0, #178
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r3, [r3]
	b	.L427
.L182:
	mvn	r3, #59
	strb	r3, [fp, #-2593]
	mov	r0, #180
	bl	step_hash
	ldrb	r2, [fp, #-2618]	@ zero_extendqisi2
	ldr	r3, .L437+380
	ldr	r3, [r3]
	and	r3, r3, r2
	ldr	r2, .L437+380
	str	r3, [r2]
	mov	r0, #181
	bl	step_hash
	sub	r3, fp, #2576
	sub	r3, r3, #4
	sub	r3, r3, #13
	ldrsb	r2, [r3]
	sub	r3, fp, #2576
	sub	r3, r3, #4
	sub	r3, r3, #13
	ldrsb	r3, [r3]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-2548]
	mov	r0, #182
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	str	r3, [fp, #-2548]
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	ldrh	r3, [r3]
	sub	r3, r3, #8
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	strh	r2, [r3]	@ movhi
.L179:
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	ldrsh	r3, [r3]
	cmn	r3, #21
	beq	.L184
	mov	r0, #207
	bl	step_hash
	ldr	r3, .L437+192
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	cmp	r3, r2
	beq	.L185
	mov	r0, #190
	bl	step_hash
	mov	r3, #0
	strb	r3, [fp, #-2607]
	b	.L186
.L187:
	mov	r0, #189
	bl	step_hash
	ldr	r3, .L437+196
	str	r3, [fp, #-1932]
	ldrb	r3, [fp, #-2607]	@ zero_extendqisi2
	sub	r3, r3, #2
	and	r3, r3, #255
	strb	r3, [fp, #-2607]
.L186:
	sub	r3, fp, #2592
	sub	r3, r3, #4
	sub	r3, r3, #11
	ldrsb	r3, [r3]
	cmn	r3, #24
	beq	.L187
	mov	r0, #197
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	ldrsh	r3, [r3]
	cmp	r3, #0
	blt	.L188
	mov	r3, #5
	str	r3, [fp, #-1912]
	mov	r0, #194
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	ldrsh	r3, [r3]
	sub	r2, fp, #20
	add	r3, r2, r3
	ldrb	r3, [r3, #-16]	@ zero_extendqisi2
	mov	r1, r3
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	ldrsh	r3, [r3]
	add	r2, r3, #2
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #14
	ldrsh	r3, [r3]
	lsl	r2, r2, #2
	sub	r0, fp, #20
	add	r2, r0, r2
	add	r3, r2, r3
	sub	r3, r3, #1536
	sub	r3, r3, #8
	ldrsb	r3, [r3]
	and	r3, r3, #1
	add	r3, r1, r3
	ldr	r2, .L437+280
	ldrsb	r2, [r2]
	cmp	r3, r2
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-1944]
	mov	r0, #195
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	ldr	r2, [fp, #-1912]
	and	r3, r3, r2
	str	r3, [fp, #-1912]
	mov	r0, #196
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r3, [r3]
	b	.L427
.L185:
	sub	r3, fp, #20
	sub	r3, r3, #2544
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #1
	str	r3, [fp, #-2384]
	mov	r0, #206
	bl	step_hash
	mov	r3, #5
	str	r3, [fp, #-2412]
	b	.L189
.L190:
	ldr	r3, .L437+200
	str	r3, [fp, #-1920]
	ldr	r3, .L437+204
	str	r3, [fp, #-1916]
	mov	r0, #202
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2544
	ldr	r2, [fp, #-1944]
	strh	r2, [r3]	@ movhi
	mov	r0, #203
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-1920]
	mov	r0, #204
	bl	step_hash
	ldr	r3, [fp, #-2320]
	sub	r3, r3, #1
	str	r3, [fp, #-2320]
	mov	r0, #205
	bl	step_hash
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	ldr	r2, [fp, #-2384]
	orr	r3, r2, r3
	str	r3, [fp, #-2384]
	ldr	r3, [fp, #-2412]
	add	r3, r3, #1
	str	r3, [fp, #-2412]
.L189:
	ldr	r3, [fp, #-2412]
	cmp	r3, #15
	bls	.L190
.L188:
	mov	r0, #208
	bl	step_hash
	ldr	r3, .L437+344
	ldrsh	r3, [r3]
	str	r3, [fp, #-1928]
	ldr	r3, .L437+316
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L437+316
	str	r3, [r2]
.L162:
	ldr	r3, .L437+316
	ldr	r3, [r3]
	cmp	r3, #13
	beq	.L192
	mov	r0, #210
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r2, [fp, #-2192]
	str	r2, [r3]
	mov	r0, #211
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r2, [fp, #-2192]
	str	r2, [r3]
	ldr	r3, [fp, #-2308]
	add	r3, r3, #1
	str	r3, [fp, #-2308]
.L161:
	ldr	r3, [fp, #-2308]
	cmp	r3, #7
	bne	.L193
	ldr	r0, .L437+208
	bl	step_hash
	ldr	r3, .L437+212
	str	r3, [fp, #-2180]
	ldr	r3, .L437+216
	str	r3, [fp, #-2176]
	mov	r3, #1
	str	r3, [fp, #-2172]
	mov	r0, #214
	bl	step_hash
	ldrb	r3, [fp, #-2600]
	add	r3, r3, #1
	strb	r3, [fp, #-2600]
	mov	r0, #219
	bl	step_hash
	ldr	r3, .L437+232
	mvn	r2, #27
	strh	r2, [r3]	@ movhi
	b	.L194
.L195:
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #2
	mov	r2, #5
	strh	r2, [r3]	@ movhi
	ldr	r3, .L437+220
	str	r3, [fp, #-1956]
	ldr	r3, .L437+224
	str	r3, [fp, #-1952]
	ldr	r3, .L437+228
	str	r3, [fp, #-1948]
	mov	r0, #218
	bl	step_hash
	ldrb	r3, [fp, #-2604]
	add	r3, r3, #1
	strb	r3, [fp, #-2604]
	ldr	r3, .L437+232
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #5
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L437+232
	strh	r3, [r2]	@ movhi
.L194:
	ldr	r3, .L437+232
	ldrsh	r3, [r3]
	cmp	r3, #25
	bne	.L195
	ldr	r0, .L437+236
	bl	step_hash
	ldr	r3, .L437+344
	ldrsh	r3, [r3]
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	cmp	r3, #0
	beq	.L196
	mvn	r3, #0
	str	r3, [fp, #-2156]
	ldr	r3, .L437+424
	str	r3, [fp, #-2152]
	ldr	r3, .L437+240
	str	r3, [fp, #-2148]
	mov	r3, #0
	str	r3, [fp, #-2380]
	ldr	r3, .L437+244
	str	r3, [fp, #-2144]
	ldr	r3, .L437+248
	str	r3, [fp, #-2140]
	mov	r3, #0
	str	r3, [fp, #-2376]
	mvn	r3, #0
	str	r3, [fp, #-2136]
	mvn	r3, #0
	str	r3, [fp, #-2132]
	mvn	r3, #0
	str	r3, [fp, #-2128]
	ldr	r3, .L437+252
	str	r3, [fp, #-2124]
	mvn	r3, #0
	str	r3, [fp, #-2120]
	mvn	r3, #8
	str	r3, [fp, #-2116]
	ldr	r3, .L437+256
	str	r3, [fp, #-2112]
	ldr	r3, .L437+260
	str	r3, [fp, #-2108]
	mov	r3, #0
	str	r3, [fp, #-2104]
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #8
	ldr	r2, .L437+264
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #6
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L437+268
	str	r3, [fp, #-2100]
	mvn	r3, #6
	str	r3, [fp, #-2372]
	ldr	r0, .L437+272
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	ldr	r2, [fp, #-2156]
	sub	r3, r2, r3
	ldr	r2, [fp, #-2616]
	cmp	r2, #0
	moveq	r2, #1
	movne	r2, #0
	and	r2, r2, #255
	cmp	r3, r2
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	ldr	r2, .L437+344
	ldrsh	r2, [r2]
	mov	r0, r2
	ldr	r2, [fp, #-2152]
	cmp	r2, #0
	moveq	r2, #1
	movne	r2, #0
	and	r2, r2, #255
	cmp	r0, r2
	bne	.L197
	ldr	r2, [fp, #-2148]
	cmp	r2, #0
	beq	.L197
	mov	r2, #1
	b	.L198
.L197:
	mov	r2, #0
.L198:
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2156]
	cmp	r3, r2
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L437+276
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mul	r3, r2, r3
	cmp	r1, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, .L437+280
	ldrsb	r3, [r3]
	add	r3, r2, r3
	ldr	r2, .L437+344
	ldrsh	r2, [r2]
	cmp	r3, r2
	bge	.L199
	mov	r0, #296
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r3, [r3]
	b	.L427
.L199:
	mvn	r3, #68
	strb	r3, [fp, #-2598]
	ldr	r0, .L437+284
	bl	step_hash
	ldr	r3, .L437+288
	sub	ip, fp, #824
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	ldr	r3, .L437+292
	str	r3, [fp, #-2512]
	ldr	r0, .L437+296
	bl	step_hash
	mvn	r3, #7
	strb	r3, [fp, #-2617]
	b	.L200
.L205:
	mvn	r3, #0
	str	r3, [fp, #-1968]
	ldr	r3, .L437+300
	str	r3, [fp, #-1964]
	ldr	r3, .L437+304
	str	r3, [fp, #-1960]
	ldr	r0, .L437+308
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r2, [r3]
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r0, .L437+312
	bl	step_hash
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L431
	mov	r0, #304
	bl	step_hash
	ldr	r3, [fp, #-2192]
	ldr	r4, [r3]
	ldr	r3, [fp, #-2540]
	cmp	r3, #0
	beq	.L203
	ldr	r3, [fp, #-1968]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #6
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3]
	cmp	r3, #0
	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
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, .L437+316
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	and	r3, r3, r2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r1, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r1, [r3]
	ldr	r3, .L437+380
	ldr	r3, [r3]
	cmp	r1, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	bgt	.L203
	mov	r3, #1
	b	.L204
.L203:
	mov	r3, #0
.L204:
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #20
	sub	r3, r3, #804
	ldrh	r3, [r3, #2]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	cmp	r4, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2512]
	and	r3, r3, r2
	str	r3, [fp, #-2512]
	ldr	r0, .L437+320
	bl	step_hash
	ldr	r3, [fp, #-2332]
	sub	r3, r3, #1
	str	r3, [fp, #-2332]
	b	.L202
.L431:
	nop
.L202:
	ldrb	r3, [fp, #-2617]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r3, r3, #255
	strb	r3, [fp, #-2617]
.L200:
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmn	r3, #4
	blt	.L205
	mov	r0, #312
	bl	step_hash
	mvn	r3, #16
	str	r3, [fp, #-2332]
	b	.L206
.L207:
	ldr	r0, .L437+324
	bl	step_hash
	ldr	r3, [fp, #-2192]
	ldr	r3, [r3]
	eor	r2, r3, #1
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	ldr	r0, .L437+328
	bl	step_hash
	mov	r0, #0
	bl	func_59
	mov	r3, r0
	and	r3, r3, #8
	str	r3, [fp, #-2512]
	ldr	r3, [fp, #-2332]
	add	r3, r3, #1
	str	r3, [fp, #-2332]
.L206:
	ldr	r3, [fp, #-2332]
	cmp	r3, #44
	bhi	.L207
	mov	r0, #316
	bl	step_hash
	ldr	r3, [fp, #-1508]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	ldr	r3, [fp, #-2192]
	mov	r2, #1
	str	r2, [r3]
	ldr	r0, .L437+332
	bl	step_hash
	ldr	r3, [fp, #-2192]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	and	r3, r3, #255
	lsr	r3, r3, #2
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2380]
	orr	r3, r3, r2
	str	r3, [fp, #-2380]
	ldr	r0, .L437+336
	bl	step_hash
	ldrb	r3, [fp, #-2605]	@ zero_extendqisi2
	lsl	r3, r3, #16
	lsr	r4, r3, #16
	mov	r0, #0
	bl	func_59
	mov	r2, r0
	ldr	r3, [fp, #-2380]
	cmp	r2, r3
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r4, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #15
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	ldr	r2, .L437+340
	cmp	r3, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L437+344
	ldrsh	r3, [r3]
	cmp	r2, r3
	ble	.L208
	ldr	r3, .L437+348
	str	r3, [fp, #-2028]
	mvn	r3, #4
	str	r3, [fp, #-2024]
	mov	r3, #1
	str	r3, [fp, #-2020]
	mov	r3, #0
	str	r3, [fp, #-2016]
	mov	r3, #1
	str	r3, [fp, #-2012]
	ldr	r3, .L437+352
	str	r3, [fp, #-2008]
	mvn	r3, #8
	str	r3, [fp, #-2004]
	mov	r3, #2
	str	r3, [fp, #-2000]
	ldr	r3, .L437+356
	str	r3, [fp, #-1996]
	mov	r3, #0
	str	r3, [fp, #-1992]
	ldr	r3, .L437+360
	str	r3, [fp, #-1988]
	ldr	r3, .L437+364
	str	r3, [fp, #-1984]
	ldr	r3, .L437+368
	sub	ip, fp, #824
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	mov	r3, #2
	strb	r3, [fp, #-2606]
	mov	r3, #0
	str	r3, [fp, #-2368]
	b	.L209
.L210:
	sub	r3, fp, #20
	sub	r3, r3, #1232
	sub	r3, r3, #12
	ldr	r2, [fp, #-2368]
	lsl	r2, r2, #1
	add	r3, r3, r2
	ldr	r2, .L437+372
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-2368]
	add	r3, r3, #1
	str	r3, [fp, #-2368]
.L209:
	ldr	r3, [fp, #-2368]
	cmp	r3, #9
	ble	.L210
	ldr	r0, .L437+376
	bl	step_hash
	ldr	r3, .L437+380
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	cmp	r3, #0
	bne	.L211
	ldrb	r4, [fp, #-2618]	@ zero_extendqisi2
	ldr	r3, .L437+416
	ldrh	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	and	r3, r3, #255
	lsl	r3, r3, #2
	add	r3, r4, r3
	cmp	r3, #0
	beq	.L212
.L211:
	mov	r2, #1
	b	.L213
.L212:
	mov	r2, #0
.L213:
	ldr	r3, [fp, #-2616]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #13312
	sub	r3, r3, #50
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	ldr	r3, [fp, #-2616]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mul	r3, r1, r3
	cmp	r3, #1
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	blt	.L214
	ldr	r3, .L437+384
	str	r3, [fp, #-1980]
	mvn	r3, #4
	str	r3, [fp, #-1976]
	ldr	r3, .L437+388
	str	r3, [fp, #-1972]
	ldr	r3, .L437+392
	sub	ip, fp, #1088
	sub	ip, ip, #4
	sub	ip, ip, #4
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	ldr	r0, .L437+396
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2616]
	b	.L215
.L216:
	mov	r0, #324
	bl	step_hash
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3]
	ldr	r2, [fp, #-1980]
	str	r2, [r3]
	ldr	r3, [fp, #-2616]
	add	r3, r3, #1
	str	r3, [fp, #-2616]
.L215:
	ldr	r3, [fp, #-2616]
	cmp	r3, #2
	bls	.L216
	ldr	r0, .L437+400
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2380]
	b	.L217
.L220:
	mvn	r3, #6
	strb	r3, [fp, #-2596]
	mov	r3, #0
	str	r3, [fp, #-2364]
	b	.L218
.L219:
	ldr	r3, [fp, #-2364]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L437+404
	str	r2, [r3, #-1308]
	ldr	r3, [fp, #-2364]
	add	r3, r3, #1
	str	r3, [fp, #-2364]
.L218:
	ldr	r3, [fp, #-2364]
	cmp	r3, #3
	ble	.L219
	ldr	r0, .L437+408
	bl	step_hash
	ldrb	r3, [fp, #-2606]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-2606]
	ldr	r3, [fp, #-2380]
	add	r3, r3, #1
	str	r3, [fp, #-2380]
.L217:
	ldr	r3, [fp, #-2380]
	cmp	r3, #4
	bne	.L220
	ldr	r0, .L437+412
	bl	step_hash
	ldr	r3, [fp, #-1176]
	sub	r3, r3, #1
	str	r3, [fp, #-1176]
	mov	r0, #332
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r0, [r3]
	ldr	r3, .L437+416
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-1984]
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-2152]
	ldr	r4, [r3]
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	b	.L259
.L214:
	ldr	r0, .L437+420
	bl	step_hash
	ldr	r3, .L437+424
	ldr	r3, [r3]
	ldr	r3, [r3]
	b	.L427
.L208:
	mov	r3, #1
	str	r3, [fp, #-2096]
	mov	r3, #0
	str	r3, [fp, #-2360]
	b	.L222
.L225:
	mov	r3, #0
	str	r3, [fp, #-2356]
	b	.L223
.L224:
	ldr	r2, [fp, #-2360]
	ldr	r3, [fp, #-2356]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mvn	r2, #5
	str	r2, [r3, #-804]
	ldr	r3, [fp, #-2356]
	add	r3, r3, #1
	str	r3, [fp, #-2356]
.L223:
	ldr	r3, [fp, #-2356]
	cmp	r3, #0
	ble	.L224
	ldr	r3, [fp, #-2360]
	add	r3, r3, #1
	str	r3, [fp, #-2360]
.L222:
	ldr	r3, [fp, #-2360]
	cmp	r3, #2
	ble	.L225
	ldr	r0, .L439
	bl	step_hash
	ldr	r3, [fp, #-2096]
	cmp	r3, #0
	beq	.L226
	ldr	r3, .L439+4
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-2096]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, .L439+4
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	eor	r3, r3, r2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	mov	r4, r3
	mov	r0, #0
	bl	func_59
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-2104]
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #255
	rsb	r3, r3, #1
	and	r3, r3, #255
	lsl	r3, r4, r3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	cmp	r3, #1
	beq	.L226
	mov	r3, #1
	b	.L227
.L226:
	mov	r3, #0
.L227:
	mov	r2, r3
	ldr	r3, .L439+8
	orr	r3, r2, r3
	ldr	r2, [fp, #-816]
	eor	r3, r3, r2
	str	r3, [fp, #-816]
	ldr	r0, .L439+12
	bl	step_hash
	ldr	r3, [fp, #-2616]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+324
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	ldr	r0, .L439+16
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2316]
	b	.L228
.L233:
	mov	r3, #0
	str	r3, [fp, #-2032]
	ldr	r0, .L439+20
	bl	step_hash
	ldr	r3, .L439+412
	ldr	r2, [r3]
	ldr	r3, .L439+412
	ldr	r3, [r3]
	ldr	r2, [r2]
	str	r2, [r3]
	ldr	r0, .L439+24
	bl	step_hash
	ldrb	r2, [fp, #-2618]	@ zero_extendqisi2
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	mov	r0, #344
	bl	step_hash
	ldr	r3, [fp, #-2192]
	ldr	r4, [r3]
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	ldr	r2, [fp, #-2032]
	cmp	r2, r3
	movcs	r3, #1
	movcc	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+352
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	and	r5, r2, r3
	ldr	r3, [fp, #-2152]
	ldr	r3, [r3]
	ldr	r2, .L439+28
	cmp	r3, r2
	bne	.L229
	ldr	r2, .L439+32
	b	.L230
.L229:
	ldr	r2, .L439+36
.L230:
	ldr	r3, .L439+276
	ldr	r3, [r3]
	eor	r2, r2, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidivmod
	mov	r3, r1
	lsl	r3, r3, #16
	asr	r3, r3, #16
	asr	r3, r3, #8
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L439+524
	ldrh	r3, [r3]
	and	r3, r3, r2
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-824]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	cmp	r5, r3
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2032]
	cmp	r3, r2
	beq	.L231
	ldr	r3, .L439+40
	b	.L232
.L231:
	ldr	r3, .L439+44
.L232:
	orr	r2, r3, r4
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	ldr	r3, [fp, #-2316]
	add	r3, r3, #1
	str	r3, [fp, #-2316]
.L228:
	ldr	r3, [fp, #-2316]
	cmp	r3, #25
	ble	.L233
	ldr	r0, .L439+48
	bl	step_hash
	ldr	r3, .L439+524
	ldrh	r3, [r3]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	asr	r3, r3, #7
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L439+52
	ldrh	r3, [r3]
	cmp	r3, #1
	beq	.L234
	ldr	r3, [fp, #-2616]
	cmp	r3, #0
	beq	.L235
.L234:
	mov	r3, #1
	b	.L236
.L235:
	mov	r3, #0
.L236:
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-816]
	cmp	r2, r3
	bne	.L237
	mov	r3, #1
	str	r3, [fp, #-2036]
	ldr	r0, .L439+56
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2376]
	b	.L238
.L241:
	ldr	r0, .L439+60
	bl	step_hash
	ldr	r3, [fp, #-2192]
	ldr	r3, [r3]
	ldr	r2, [fp, #-820]
	and	r2, r2, #255
	mov	r1, r2
	ldr	r2, [fp, #-2036]
	and	r2, r2, #255
	mul	r2, r1, r2
	ldrb	r1, [fp, #-2618]	@ zero_extendqisi2
	cmp	r1, #0
	beq	.L239
	ldrb	r1, [fp, #-2618]	@ zero_extendqisi2
	cmp	r1, #0
	beq	.L239
	mov	r1, #1
	b	.L240
.L239:
	mov	r1, #0
.L240:
	cmp	r1, r2
	movge	r2, #1
	movlt	r2, #0
	and	r2, r2, #255
	eor	r2, r2, r3
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	ldr	r0, .L439+64
	bl	step_hash
	ldrb	r2, [fp, #-2618]	@ zero_extendqisi2
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	mov	r0, #352
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #2
	ldrh	r2, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #2
	add	r2, r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r3, [fp, #-2376]
	sub	r3, r3, #1
	str	r3, [fp, #-2376]
.L238:
	ldr	r3, [fp, #-2376]
	cmn	r3, #5
	blt	.L241
	b	.L259
.L237:
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #4
	ldr	r2, .L439+68
	strh	r2, [r3]	@ movhi
	mvn	r3, #0
	str	r3, [fp, #-2092]
	ldr	r3, .L439+72
	str	r3, [fp, #-2088]
	ldr	r3, .L439+76
	str	r3, [fp, #-2084]
	mvn	r3, #0
	str	r3, [fp, #-2080]
	ldr	r0, .L439+80
	bl	step_hash
	ldr	r3, .L439+412
	ldr	r3, [r3]
	sub	r2, fp, #824
	str	r2, [r3]
	mov	r0, #356
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	ldr	r2, [fp, #-2096]
	orr	r3, r2, r3
	str	r3, [fp, #-2096]
	mov	r0, #364
	bl	step_hash
	mvn	r3, #0
	str	r3, [fp, #-2328]
	b	.L243
.L245:
	mov	r3, #37
	strb	r3, [fp, #-2597]
	ldr	r3, .L439+84
	str	r3, [fp, #-2076]
	mvn	r3, #0
	str	r3, [fp, #-2072]
	mov	r3, #9
	str	r3, [fp, #-2068]
	ldr	r3, .L439+88
	str	r3, [fp, #-2064]
	mov	r3, #1
	str	r3, [fp, #-2060]
	ldr	r3, .L439+92
	str	r3, [fp, #-2056]
	mov	r3, #1
	str	r3, [fp, #-2052]
	ldr	r3, .L439+96
	str	r3, [fp, #-2048]
	ldr	r3, .L439+100
	str	r3, [fp, #-2044]
	mov	r3, #8
	str	r3, [fp, #-2040]
	mov	r0, #360
	bl	step_hash
	ldrb	r3, [fp, #-2597]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-2597]
	ldr	r0, .L439+104
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r3, #0
	bne	.L432
	ldr	r0, .L439+108
	bl	step_hash
	ldr	r3, [fp, #-2372]
	add	r3, r3, #1
	str	r3, [fp, #-2372]
	ldr	r0, .L439+112
	bl	step_hash
	ldr	r3, [fp, #-2408]
	add	r3, r3, #1
	str	r3, [fp, #-2408]
	ldr	r3, [fp, #-2328]
	add	r3, r3, #1
	str	r3, [fp, #-2328]
.L243:
	ldr	r3, [fp, #-2328]
	cmp	r3, #23
	ble	.L245
	b	.L259
.L196:
	mov	r3, #0
	str	r3, [fp, #-2352]
	b	.L246
.L247:
	ldr	r3, [fp, #-2352]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #2528
	sub	r2, r2, #4
	sub	r2, r2, #8
	str	r2, [r3, #-1076]
	ldr	r3, [fp, #-2352]
	add	r3, r3, #1
	str	r3, [fp, #-2352]
.L246:
	ldr	r3, [fp, #-2352]
	cmp	r3, #4
	ble	.L247
	mov	r0, #368
	bl	step_hash
	ldr	r3, [fp, #-2532]
	ldr	r2, [fp, #-1084]
	str	r2, [r3]
	ldr	r0, .L439+116
	bl	step_hash
	ldr	r3, [fp, #-1508]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+120
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	ldr	r3, .L439+324
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mul	r3, r1, r3
	cmp	r2, r3
	bgt	.L248
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-824]
	ldr	r3, .L439+484
	str	r3, [fp, #-820]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-816]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-812]
	ldr	r3, .L439+484
	str	r3, [fp, #-808]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-804]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-800]
	ldr	r3, .L439+484
	str	r3, [fp, #-796]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-792]
	ldr	r0, .L439+124
	bl	step_hash
	ldr	r3, [fp, #-2192]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2616]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	asr	r3, r3, #3
	lsl	r3, r3, #16
	asr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L439+508
	ldr	r1, [r1]
	cmp	r1, #0
	moveq	r1, #1
	movne	r1, #0
	and	r1, r1, #255
	and	r1, r1, #255
	mul	r3, r1, r3
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r0, r3
	ldr	r1, [fp, #-816]
	ldr	r3, [fp, #-1084]
	cmp	r1, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r0, r3
	orr	r2, r2, r3
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	ldr	r0, .L439+128
	bl	step_hash
	ldr	r3, .L439+276
	mvn	r2, #22
	str	r2, [r3]
	b	.L249
.L251:
	ldr	r3, .L439+132
	str	r3, [fp, #-2164]
	ldr	r0, .L439+136
	bl	step_hash
	ldr	r3, .L439+396
	ldr	r3, [r3, #72]
	str	r3, [fp, #-2164]
	mov	r0, #380
	bl	step_hash
	mvn	r3, #28
	str	r3, [fp, #-2320]
	ldr	r3, [fp, #-2320]
	cmp	r3, #7
	bhi	.L250
	mov	r3, #0
	str	r3, [fp, #-2160]
	ldr	r0, .L439+140
	bl	step_hash
	ldr	r3, [fp, #-2192]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2164]
	orr	r2, r2, r3
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	ldr	r0, .L439+144
	bl	step_hash
	ldr	r3, [fp, #-2160]
	b	.L427
.L250:
	ldr	r0, .L439+148
	bl	step_hash
	ldr	r2, [fp, #-2188]
	ldr	r3, [fp, #-2192]
	str	r2, [r3]
	ldr	r3, .L439+276
	ldr	r3, [r3]
	add	r3, r3, #3
	ldr	r2, .L439+276
	str	r3, [r2]
.L249:
	ldr	r3, .L439+276
	ldr	r3, [r3]
	cmp	r3, #54
	bhi	.L251
	b	.L252
.L248:
	ldr	r3, .L439+152
	sub	ip, fp, #824
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	mov	r0, #384
	bl	step_hash
	ldr	r3, [fp, #-804]
	sub	r3, r3, #1
	str	r3, [fp, #-804]
	ldr	r0, .L439+156
	bl	step_hash
	ldr	r3, .L439+52
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L253
.L254:
	ldr	r3, .L439+52
	ldrh	r3, [r3]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-1524]
	ldr	r3, .L439+52
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L439+52
	strh	r3, [r2]	@ movhi
.L253:
	ldr	r3, .L439+52
	ldrh	r3, [r3]
	cmp	r3, #4
	bls	.L254
	ldr	r0, .L439+160
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #4
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L255
.L258:
	mov	r3, #0
	str	r3, [fp, #-2168]
	mov	r3, #1
	str	r3, [fp, #-2348]
	ldr	r0, .L439+164
	bl	step_hash
	mov	r3, #4
	str	r3, [fp, #-2548]
	b	.L256
.L257:
	mov	r0, #392
	bl	step_hash
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	ldrb	r2, [fp, #-2618]	@ zero_extendqisi2
	ldr	r1, [fp, #-2168]
	cmp	r1, #0
	moveq	r1, #1
	movne	r1, #0
	and	r1, r1, #255
	cmp	r2, r1
	movgt	r2, #1
	movle	r2, #0
	and	r2, r2, #255
	eor	r3, r3, r2
	ldr	r2, [fp, #-2348]
	and	r3, r3, r2
	str	r3, [fp, #-2348]
	ldr	r3, [fp, #-2548]
	sub	r3, r3, #1
	str	r3, [fp, #-2548]
.L256:
	ldr	r3, [fp, #-2548]
	cmp	r3, #0
	bge	.L257
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #4
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #4
	strh	r2, [r3]	@ movhi
.L255:
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #4
	ldrsh	r3, [r3]
	cmp	r3, #4
	ble	.L258
.L252:
	mov	r0, #396
	bl	step_hash
	ldr	r3, [fp, #-2184]
	add	r3, r3, #1
	str	r3, [fp, #-2184]
	b	.L259
.L154:
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #10
	mov	r2, #3
	strh	r2, [r3]	@ movhi
	mvn	r3, #0
	str	r3, [fp, #-2264]
	ldr	r3, .L439+168
	str	r3, [fp, #-2260]
	mvn	r3, #3
	str	r3, [fp, #-2516]
	mov	r3, #1
	str	r3, [fp, #-2256]
	mov	r3, #0
	str	r3, [fp, #-2344]
	b	.L261
.L264:
	mov	r3, #0
	str	r3, [fp, #-2340]
	b	.L262
.L263:
	ldr	r3, [fp, #-2344]
	lsl	r2, r3, #1
	ldr	r3, [fp, #-2340]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L439+172
	str	r2, [r3, #-1076]
	ldr	r3, [fp, #-2340]
	add	r3, r3, #1
	str	r3, [fp, #-2340]
.L262:
	ldr	r3, [fp, #-2340]
	cmp	r3, #1
	ble	.L263
	ldr	r3, [fp, #-2344]
	add	r3, r3, #1
	str	r3, [fp, #-2344]
.L261:
	ldr	r3, [fp, #-2344]
	cmp	r3, #6
	ble	.L264
	mov	r3, #0
	str	r3, [fp, #-2344]
	b	.L265
.L266:
	ldr	r3, [fp, #-2344]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #1088
	sub	r2, r2, #4
	sub	r2, r2, #4
	add	r2, r2, #20
	str	r2, [r3, #-1308]
	ldr	r3, [fp, #-2344]
	add	r3, r3, #1
	str	r3, [fp, #-2344]
.L265:
	ldr	r3, [fp, #-2344]
	cmp	r3, #6
	ble	.L266
	mov	r3, #0
	str	r3, [fp, #-2344]
	b	.L267
.L268:
	ldr	r3, [fp, #-2344]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #-1460]
	ldr	r3, [fp, #-2344]
	add	r3, r3, #1
	str	r3, [fp, #-2344]
.L267:
	ldr	r3, [fp, #-2344]
	cmp	r3, #0
	ble	.L268
	ldr	r0, .L439+176
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #12
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L269
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-2196]
	mov	r0, #400
	bl	step_hash
	ldr	r3, [fp, #-2532]
	ldr	r3, [r3]
	b	.L427
.L269:
	mov	r3, #5
	str	r3, [fp, #-2252]
	ldr	r3, .L439+180
	str	r3, [fp, #-2248]
	ldr	r3, .L439+184
	str	r3, [fp, #-2244]
	mvn	r3, #0
	str	r3, [fp, #-2512]
	mov	r3, #1
	str	r3, [fp, #-2240]
	ldr	r3, .L439+188
	str	r3, [fp, #-2236]
	ldr	r3, .L439+192
	sub	ip, fp, #1168
	sub	ip, ip, #4
	sub	ip, ip, #8
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r3, .L439+196
	str	r3, [fp, #-2232]
	sub	r3, fp, #1168
	sub	r3, r3, #4
	sub	r3, r3, #8
	add	r3, r3, #36
	str	r3, [fp, #-1264]
	sub	r3, fp, #1168
	sub	r3, r3, #4
	sub	r3, r3, #8
	add	r3, r3, #36
	str	r3, [fp, #-1260]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-1256]
	sub	r3, fp, #1168
	sub	r3, r3, #4
	sub	r3, r3, #8
	add	r3, r3, #36
	str	r3, [fp, #-1252]
	sub	r3, fp, #1168
	sub	r3, r3, #4
	sub	r3, r3, #8
	add	r3, r3, #36
	str	r3, [fp, #-1248]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-1244]
	sub	r3, fp, #1168
	sub	r3, r3, #4
	sub	r3, r3, #8
	add	r3, r3, #36
	str	r3, [fp, #-1240]
	sub	r3, fp, #1168
	sub	r3, r3, #4
	sub	r3, r3, #8
	add	r3, r3, #36
	str	r3, [fp, #-1236]
	ldr	r0, .L439+200
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2544
	sub	r3, r3, #10
	ldrsh	r3, [r3]
	cmp	r3, #1
	beq	.L271
	ldr	r3, .L439+4
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #6
	ldrsb	r3, [r3]
	asr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r4, r3, #16
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	mov	r1, r3
	ldr	r0, .L439+204
	bl	__aeabi_uidiv
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
	cmp	r4, r3
	beq	.L271
	mov	r3, #1
	b	.L272
.L271:
	mov	r3, #0
.L272:
	ldr	r2, .L439+208
	cmp	r3, r2
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+484
	ldr	r3, [r3]
	cmp	r2, r3
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r2, r3, #16
	ldr	r3, [fp, #-2252]
	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	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L439+524
	ldrh	r3, [r3]
	asr	r3, r2, r3
	cmp	r3, #0
	beq	.L273
	ldr	r3, .L439+212
	str	r3, [fp, #-2224]
	ldr	r3, .L439+216
	str	r3, [fp, #-2220]
	mvn	r3, #9
	str	r3, [fp, #-2216]
	ldr	r3, .L439+220
	str	r3, [fp, #-2212]
	mov	r3, #0
	str	r3, [fp, #-2432]
	b	.L274
.L275:
	ldr	r3, [fp, #-2432]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #7
	str	r2, [r3, #-1392]
	ldr	r3, [fp, #-2432]
	add	r3, r3, #1
	str	r3, [fp, #-2432]
.L274:
	ldr	r3, [fp, #-2432]
	cmp	r3, #0
	ble	.L275
	ldr	r0, .L439+224
	bl	step_hash
	ldr	r3, [fp, #-2224]
	ldr	r2, .L439+228
	cmp	r3, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldr	r3, .L439+484
	ldr	r3, [r3]
	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
	mov	r0, r3
	bl	func_59
	mov	r2, r0
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r2, r3
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, .L439+500
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, #0
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r4, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r2, r3
	ble	.L276
	mov	r3, #0
	str	r3, [fp, #-2204]
	mov	r3, #8
	str	r3, [fp, #-2200]
	mov	r3, #0
	str	r3, [fp, #-2428]
	b	.L277
.L278:
	ldr	r3, [fp, #-2428]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L439+484
	str	r2, [r3, #-804]
	ldr	r3, [fp, #-2428]
	add	r3, r3, #1
	str	r3, [fp, #-2428]
.L277:
	ldr	r3, [fp, #-2428]
	cmp	r3, #8
	ble	.L278
	mov	r0, #404
	bl	step_hash
	ldr	r3, [fp, #-2296]
	add	r3, r3, #1
	str	r3, [fp, #-2296]
	ldr	r0, .L439+232
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2536]
	b	.L279
.L280:
	mvn	r3, #0
	strb	r3, [fp, #-2601]
	mov	r0, #408
	bl	step_hash
	ldrb	r3, [fp, #-2601]
	add	r3, r3, #1
	strb	r3, [fp, #-2601]
	ldr	r3, [fp, #-2536]
	sub	r3, r3, #1
	str	r3, [fp, #-2536]
.L279:
	ldr	r3, [fp, #-2536]
	cmp	r3, #0
	bge	.L280
	ldr	r0, .L439+236
	bl	step_hash
	ldr	r3, [fp, #-1144]
	cmp	r3, #0
	beq	.L281
	mvn	r3, #121
	strb	r3, [fp, #-2602]
	ldr	r0, .L439+240
	bl	step_hash
	ldrb	r2, [fp, #-2602]	@ zero_extendqisi2
	ldr	r3, [fp, #-2544]
	and	r3, r3, r2
	str	r3, [fp, #-2544]
	mov	r0, #412
	bl	step_hash
	ldr	r3, [fp, #-2532]
	ldr	r3, [r3]
	str	r3, [fp, #-1316]
	ldr	r0, .L439+244
	bl	step_hash
	ldrb	r2, [fp, #-2602]	@ zero_extendqisi2
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r6, r3
	ldr	r3, .L439+396
	ldr	r4, [r3, #52]
	ldr	r3, .L439+120
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L282
	ldr	r3, .L439+276
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L283
.L282:
	mov	r3, #1
	b	.L284
.L440:
	.align	2
.L439:
	.word	337
	.word	g_2
	.word	-1962445764
	.word	338
	.word	345
	.word	342
	.word	343
	.word	g_215+12
	.word	1635619921
	.word	1635619920
	.word	1704950237
	.word	1704950236
	.word	365
	.word	g_627
	.word	353
	.word	350
	.word	351
	.word	-1532
	.word	-1438396269
	.word	-1353533123
	.word	355
	.word	387753444
	.word	770712911
	.word	1394219145
	.word	1924220933
	.word	-1112606798
	.word	361
	.word	362
	.word	363
	.word	395
	.word	g_670
	.word	370
	.word	382
	.word	-262404647
	.word	374
	.word	378
	.word	379
	.word	381
	.word	.LC26
	.word	385
	.word	394
	.word	393
	.word	154431245
	.word	1858597141
	.word	454
	.word	-1393683415
	.word	-963775954
	.word	-1527695310
	.word	.LC27
	.word	-638861799
	.word	453
	.word	56632
	.word	1669
	.word	g_215+76
	.word	79870500
	.word	163232038
	.word	431
	.word	g_215+112
	.word	409
	.word	418
	.word	411
	.word	413
	.word	g_760
	.word	414
	.word	417
	.word	1764895908
	.word	-652105599
	.word	423
	.word	425
	.word	g_363
	.word	430
	.word	-1026626758
	.word	429
	.word	-923527861
	.word	445
	.word	437
	.word	438
	.word	2122286825
	.word	443
	.word	442
	.word	446
	.word	g_578
	.word	450
	.word	451
	.word	.LC28
	.word	.LC29
	.word	991482720
	.word	529
	.word	g_178
	.word	-579286291
	.word	-1093760992
	.word	.LC30
	.word	495
	.word	.LC48
	.word	-958996905
	.word	-1058537909
	.word	.LC31
	.word	-1348913012
	.word	461
	.word	g_681
	.word	g_2
	.word	469
	.word	-14397
	.word	g_214
	.word	465
	.word	466
	.word	467
	.word	g_215+44
	.word	494
	.word	127058811
	.word	482
	.word	474
	.word	475
	.word	.LC32
	.word	478
	.word	479
	.word	481
	.word	483
	.word	485
	.word	-489300055
	.word	487
	.word	g_64
	.word	g_145
	.word	493
	.word	g_214
	.word	g_319
	.word	786480073
	.word	g_677
	.word	261108560
	.word	1604750524
	.word	1722351153
	.word	g_73
.L283:
	mov	r3, #0
.L284:
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsr	r3, r3, #9
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r7, r3
	ldr	r3, .L439+396
	ldr	r5, [r3, #72]
	ldr	r3, [fp, #-2252]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	cmp	r5, r3
	movcs	r3, #1
	movcc	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	bl	func_59
	mov	r3, r0
	cmp	r3, #137
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+324
	ldr	r3, [r3]
	and	r3, r3, r2
	mov	r2, r3
	ldr	r3, .L439+396
	ldr	r3, [r3, #32]
	cmp	r2, r3
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	sub	r3, r2, r3
	cmp	r7, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	cmp	r4, r3
	movcc	r3, #1
	movcs	r3, #0
	and	r3, r3, #255
	cmp	r6, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+324
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r2, r2, r3
	ldr	r3, .L439+248
	ldr	r3, [r3]
	eor	r3, r3, r2
	ldr	r2, .L439+248
	str	r3, [r2]
	ldr	r0, .L439+252
	bl	step_hash
	b	.L286
.L281:
	mov	r0, #416
	bl	step_hash
	ldr	r2, [fp, #-1480]
	ldr	r3, [fp, #-2200]
	and	r3, r3, r2
	str	r3, [fp, #-2200]
	ldr	r0, .L439+256
	bl	step_hash
	ldr	r3, .L439+260
	str	r3, [fp, #-1412]
	b	.L286
.L276:
	mov	r0, #424
	bl	step_hash
	mvn	r3, #14
	strb	r3, [fp, #-2618]
	b	.L287
.L292:
	mov	r3, #0
	str	r3, [fp, #-2424]
	b	.L288
.L291:
	mov	r3, #0
	str	r3, [fp, #-2420]
	b	.L289
.L290:
	ldr	r2, [fp, #-2424]
	ldr	r3, [fp, #-2420]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L439+264
	str	r2, [r3, #-804]
	ldr	r3, [fp, #-2420]
	add	r3, r3, #1
	str	r3, [fp, #-2420]
.L289:
	ldr	r3, [fp, #-2420]
	cmp	r3, #0
	ble	.L290
	ldr	r3, [fp, #-2424]
	add	r3, r3, #1
	str	r3, [fp, #-2424]
.L288:
	ldr	r3, [fp, #-2424]
	cmp	r3, #8
	ble	.L291
	ldr	r0, .L439+268
	bl	step_hash
	ldr	r3, [fp, #-812]
	and	r3, r3, #1
	str	r3, [fp, #-812]
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	add	r3, r3, #1
	strb	r3, [fp, #-2618]
.L287:
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	cmp	r3, #53
	bhi	.L292
	ldr	r0, .L439+272
	bl	step_hash
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	ldr	r2, .L439+276
	ldr	r2, [r2]
	cmp	r2, #1
	movhi	r2, #1
	movls	r2, #0
	and	r2, r2, #255
	cmp	r3, r2
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	str	r3, [fp, #-2220]
	ldr	r0, .L439+280
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2332]
	b	.L293
.L294:
	ldr	r3, .L439+284
	str	r3, [fp, #-2208]
	ldr	r0, .L439+288
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	ldr	r2, [fp, #-2208]
	and	r3, r3, r2
	str	r3, [fp, #-2208]
	ldr	r3, [fp, #-2332]
	add	r3, r3, #1
	str	r3, [fp, #-2332]
.L293:
	ldr	r3, [fp, #-2332]
	cmp	r3, #6
	bls	.L294
.L286:
	mov	r0, #432
	bl	step_hash
	ldr	r3, .L439+412
	ldr	r2, [r3]
	ldr	r3, [fp, #-2532]
	ldr	r2, [r2]
	str	r2, [r3]
	b	.L259
.L273:
	ldr	r3, .L439+292
	str	r3, [fp, #-2416]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	str	r3, [fp, #-824]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	str	r3, [fp, #-820]
	ldr	r3, .L439+508
	str	r3, [fp, #-816]
	ldr	r3, .L439+412
	str	r3, [fp, #-812]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	str	r3, [fp, #-808]
	ldr	r3, .L439+412
	str	r3, [fp, #-804]
	ldr	r3, .L439+508
	str	r3, [fp, #-800]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	str	r3, [fp, #-796]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	str	r3, [fp, #-792]
	ldr	r3, .L439+508
	str	r3, [fp, #-788]
	ldr	r3, .L439+412
	str	r3, [fp, #-784]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	str	r3, [fp, #-780]
	ldr	r3, .L439+412
	str	r3, [fp, #-776]
	ldr	r3, .L439+508
	str	r3, [fp, #-772]
	ldr	r0, .L439+296
	bl	step_hash
	mov	r3, #0
	strb	r3, [fp, #-2605]
	b	.L296
.L303:
	ldr	r0, .L439+300
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2312]
	b	.L297
.L300:
	ldr	r3, .L439+488
	mov	r2, #0
	str	r2, [r3]
	b	.L298
.L299:
	ldr	r3, .L439+488
	ldr	r1, [r3]
	ldr	r0, .L439+352
	ldr	r2, [fp, #-2312]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	add	r3, r0, r3
	add	r3, r3, r1
	mov	r2, #1
	strb	r2, [r3]
	ldr	r3, .L439+488
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L439+488
	str	r3, [r2]
.L298:
	ldr	r3, .L439+488
	ldr	r3, [r3]
	cmp	r3, #4
	bls	.L299
	ldr	r3, [fp, #-2312]
	add	r3, r3, #1
	str	r3, [fp, #-2312]
.L297:
	ldr	r3, [fp, #-2312]
	cmp	r3, #3
	ble	.L300
	ldr	r0, .L439+304
	bl	step_hash
	ldr	r2, [fp, #-2416]
	ldr	r3, .L439+308
	eor	r3, r3, r2
	str	r3, [fp, #-2416]
	ldr	r0, .L439+312
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2320]
	b	.L301
.L302:
	ldr	r0, .L439+316
	bl	step_hash
	ldr	r3, [fp, #-2320]
	add	r1, r3, #3
	ldr	r3, [fp, #-2320]
	add	ip, r3, #1
	ldr	r0, [fp, #-2532]
	sub	r2, fp, #1168
	sub	r2, r2, #4
	sub	r2, r2, #8
	mov	r3, r1
	lsl	r3, r3, #1
	add	r3, r3, r1
	add	r3, r3, ip
	lsl	r3, r3, #2
	add	r3, r2, r3
	str	r3, [r0]
	ldr	r3, [fp, #-2320]
	add	r3, r3, #1
	str	r3, [fp, #-2320]
.L301:
	ldr	r3, [fp, #-2320]
	cmp	r3, #0
	beq	.L302
	mov	r0, #444
	bl	step_hash
	sub	r3, fp, #2512
	sub	r3, r3, #4
	str	r3, [fp, #-1264]
	ldrb	r3, [fp, #-2605]
	add	r3, r3, #7
	strb	r3, [fp, #-2605]
.L296:
	ldrb	r3, [fp, #-2605]	@ zero_extendqisi2
	cmp	r3, #7
	bhi	.L303
	ldr	r0, .L439+320
	bl	step_hash
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-2532]
	mov	r0, #452
	bl	step_hash
	mvn	r3, #29
	str	r3, [fp, #-2516]
	nop
	ldr	r3, [fp, #-2516]
	cmp	r3, #14
	bgt	.L259
	ldr	r3, .L439+324
	str	r3, [fp, #-2228]
	ldr	r0, .L439+328
	bl	step_hash
	ldr	r3, [fp, #-2228]
	str	r3, [fp, #-1304]
	ldr	r0, .L439+332
	bl	step_hash
	ldr	r3, [fp, #-2228]
	b	.L427
.L432:
	nop
.L259:
	mov	r0, #532
	bl	step_hash
	ldrb	r3, [fp, #-2605]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L306
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #6
	mvn	r2, #4
	strh	r2, [r3]	@ movhi
	ldr	r2, .L439+336
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	mov	r1, r2
	mov	r2, #84
	mov	r0, r3
	bl	memcpy
	ldr	r2, .L439+340
	sub	r3, fp, #1088
	sub	r3, r3, #4
	sub	r3, r3, #4
	mov	r1, r2
	mov	r2, #128
	mov	r0, r3
	bl	memcpy
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #10
	mvn	r2, #5
	strh	r2, [r3]	@ movhi
	ldr	r3, .L439+344
	str	r3, [fp, #-2528]
	mov	r3, #0
	str	r3, [fp, #-2456]
	ldr	r3, .L439+508
	str	r3, [fp, #-1824]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-1820]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1816]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1812]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1180]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1176]
	mov	r3, #0
	str	r3, [fp, #-1172]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1168]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1164]
	mov	r3, #0
	str	r3, [fp, #-1160]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1156]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1152]
	mov	r3, #0
	str	r3, [fp, #-1148]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1144]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1140]
	mov	r3, #0
	str	r3, [fp, #-1136]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1132]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1128]
	mov	r3, #0
	str	r3, [fp, #-1124]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1120]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1116]
	mov	r3, #0
	str	r3, [fp, #-1112]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1108]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1104]
	mov	r3, #0
	str	r3, [fp, #-1100]
	ldr	r0, .L439+348
	bl	step_hash
	ldrb	r3, [fp, #-2617]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L439+352
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	add	r3, r2, r3
	cmp	r3, #0
	beq	.L307
	mov	r3, #0
	str	r3, [fp, #-1736]
	ldr	r3, .L439+356
	str	r3, [fp, #-1732]
	mov	r3, #0
	str	r3, [fp, #-1728]
	ldr	r3, .L439+360
	str	r3, [fp, #-2452]
	mov	r3, #0
	str	r3, [fp, #-1724]
	ldr	r3, .L439+364
	sub	ip, fp, #1312
	sub	ip, ip, #4
	sub	ip, ip, #12
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	mvn	r3, #2
	str	r3, [fp, #-1720]
	ldr	r0, .L439+368
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2324]
	b	.L308
.L340:
	mov	r3, #3
	strb	r3, [fp, #-2589]
	ldr	r2, .L439+372
	sub	r3, fp, #32
	ldm	r2, {r0, r1}
	str	r0, [r3]
	add	r3, r3, #4
	strh	r1, [r3]	@ movhi
	mvn	r3, #1
	str	r3, [fp, #-1716]
	ldr	r3, .L439+376
	str	r3, [fp, #-1712]
	ldr	r3, .L439+380
	str	r3, [fp, #-1708]
	mvn	r3, #92
	strb	r3, [fp, #-2608]
	mov	r3, #0
	str	r3, [fp, #-2512]
	mov	r3, #7
	str	r3, [fp, #-1704]
	mvn	r3, #0
	str	r3, [fp, #-1700]
	ldr	r3, .L439+384
	sub	ip, fp, #1504
	sub	ip, ip, #4
	sub	ip, ip, #4
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #8
	mvn	r2, #0
	strh	r2, [r3]	@ movhi
	ldr	r3, .L439+388
	str	r3, [fp, #-2448]
	mov	r3, #0
	str	r3, [fp, #-2444]
	b	.L309
.L312:
	mov	r3, #0
	str	r3, [fp, #-2440]
	b	.L310
.L311:
	ldr	r3, [fp, #-2444]
	lsl	r2, r3, #2
	ldr	r3, [fp, #-2440]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #3
	str	r2, [r3, #-1524]
	ldr	r3, [fp, #-2440]
	add	r3, r3, #1
	str	r3, [fp, #-2440]
.L310:
	ldr	r3, [fp, #-2440]
	cmp	r3, #3
	ble	.L311
	ldr	r3, [fp, #-2444]
	add	r3, r3, #1
	str	r3, [fp, #-2444]
.L309:
	ldr	r3, [fp, #-2444]
	cmp	r3, #1
	ble	.L312
	mov	r3, #0
	str	r3, [fp, #-2444]
	b	.L313
.L314:
	ldr	r3, [fp, #-2444]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #2496
	sub	r2, r2, #4
	sub	r2, r2, #12
	str	r2, [r3, #-1544]
	ldr	r3, [fp, #-2444]
	add	r3, r3, #1
	str	r3, [fp, #-2444]
.L313:
	ldr	r3, [fp, #-2444]
	cmp	r3, #4
	ble	.L314
	ldr	r0, .L439+392
	bl	step_hash
	ldrb	r0, [fp, #-2603]	@ zero_extendqisi2
	ldr	r3, .L439+396
	ldr	r3, [r3, #72]
	mov	r1, r3
	ldr	r3, .L439+400
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L439+412
	ldr	r4, [r2]
	mov	r2, r3
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	ldr	r0, .L439+404
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2308]
	b	.L315
.L318:
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #6
	ldr	r2, .L439+408
	strh	r2, [r3]	@ movhi
	ldr	r3, .L439+412
	str	r3, [fp, #-1656]
	ldr	r0, .L439+416
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #6
	ldrh	r2, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #6
	add	r2, r2, #1
	strh	r2, [r3]	@ movhi
	ldr	r0, .L439+420
	bl	step_hash
	ldr	r3, [fp, #-2308]
	add	r2, r3, #1
	ldr	r3, [fp, #-2308]
	add	r1, r3, #4
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r3, [r3, #-948]
	cmp	r3, #0
	bne	.L433
	ldr	r0, .L439+424
	bl	step_hash
	mvn	r3, #9
	str	r3, [fp, #-1224]
	mov	r0, #468
	bl	step_hash
	ldr	r3, [fp, #-1656]
	ldr	r2, .L439+428
	str	r2, [r3]
	b	.L317
.L433:
	nop
.L317:
	ldr	r3, [fp, #-2308]
	add	r3, r3, #1
	str	r3, [fp, #-2308]
.L315:
	ldr	r3, [fp, #-2308]
	cmp	r3, #0
	ble	.L318
	ldr	r0, .L439+432
	bl	step_hash
	ldr	r3, .L439+500
	mov	r2, #4
	strb	r2, [r3]
	b	.L319
.L339:
	ldr	r3, .L439+508
	str	r3, [fp, #-1696]
	ldr	r3, .L439+436
	str	r3, [fp, #-1692]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-1688]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #40
	str	r3, [fp, #-1684]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-1680]
	mov	r3, #0
	str	r3, [fp, #-1676]
	mov	r3, #0
	str	r3, [fp, #-2436]
	b	.L320
.L321:
	ldr	r3, [fp, #-2436]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mvn	r2, #9
	str	r2, [r3, #-1460]
	ldr	r3, [fp, #-2436]
	add	r3, r3, #1
	str	r3, [fp, #-2436]
.L320:
	ldr	r3, [fp, #-2436]
	cmp	r3, #7
	ble	.L321
	mov	r3, #0
	str	r3, [fp, #-2436]
	b	.L322
.L325:
	mov	r3, #0
	str	r3, [fp, #-2508]
	b	.L323
.L324:
	ldr	r3, [fp, #-2436]
	lsl	r2, r3, #2
	ldr	r3, [fp, #-2508]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-804]
	ldr	r3, [fp, #-2508]
	add	r3, r3, #1
	str	r3, [fp, #-2508]
.L323:
	ldr	r3, [fp, #-2508]
	cmp	r3, #3
	ble	.L324
	ldr	r3, [fp, #-2436]
	add	r3, r3, #1
	str	r3, [fp, #-2436]
.L322:
	ldr	r3, [fp, #-2436]
	cmp	r3, #2
	ble	.L325
	ldr	r0, .L439+440
	bl	step_hash
	ldr	r3, .L439+500
	ldrsb	r3, [r3]
	add	r1, r3, #1
	ldr	r2, [fp, #-2324]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r1
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, [r3, #-948]
	ldrb	r3, [fp, #-2589]	@ zero_extendqisi2
	ldr	r1, [fp, #-1696]
	cmp	r1, #0
	moveq	r1, #1
	movne	r1, #0
	and	r1, r1, #255
	eor	r3, r3, r1
	cmp	r2, r3
	blt	.L326
	mov	r3, #0
	str	r3, [fp, #-1664]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-1660]
	ldr	r0, .L439+444
	bl	step_hash
	ldr	r2, [fp, #-2616]
	ldr	r3, [fp, #-1660]
	str	r2, [r3]
	ldr	r0, .L439+448
	bl	step_hash
	ldr	r3, [fp, #-1660]
	mov	r2, #0
	str	r2, [r3]
	mov	r0, #476
	bl	step_hash
	ldr	r3, [fp, #-1660]
	ldr	r2, [r3]
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+524
	ldrh	r3, [r3]
	lsl	r3, r2, r3
	str	r3, [fp, #-1716]
	b	.L327
.L326:
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-1672]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #28
	str	r3, [fp, #-1668]
	ldr	r3, .L439+452
	sub	ip, fp, #1408
	sub	ip, ip, #4
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldr	r3, [lr]
	str	r3, [ip]
	mov	r3, #0
	str	r3, [fp, #-2504]
	b	.L328
.L329:
	ldr	r3, [fp, #-2504]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #1248
	sub	r2, r2, #4
	sub	r2, r2, #12
	add	r2, r2, #40
	str	r2, [r3, #-1572]
	ldr	r3, [fp, #-2504]
	add	r3, r3, #1
	str	r3, [fp, #-2504]
.L328:
	ldr	r3, [fp, #-2504]
	cmp	r3, #1
	ble	.L329
	ldr	r0, .L439+456
	bl	step_hash
	ldr	r3, [fp, #-1392]
	add	r3, r3, #1
	str	r3, [fp, #-1392]
	ldr	r0, .L439+460
	bl	step_hash
	ldr	r3, [fp, #-1324]
	ldr	r2, [fp, #-1708]
	ldr	r1, [fp, #-2616]
	cmp	r1, r2
	movhi	r2, #1
	movls	r2, #0
	and	r2, r2, #255
	eor	r3, r3, r2
	str	r3, [fp, #-1324]
	mov	r0, #480
	bl	step_hash
	ldrb	r3, [fp, #-2608]
	add	r3, r3, #1
	strb	r3, [fp, #-2608]
	ldr	r0, .L439+464
	bl	step_hash
	ldr	r3, [fp, #-2456]
	sub	r3, r3, #1
	str	r3, [fp, #-2456]
.L327:
	ldr	r0, .L439+468
	bl	step_hash
	ldr	r3, [fp, #-2448]
	add	r3, r3, #1
	str	r3, [fp, #-2448]
	mov	r0, #488
	bl	step_hash
	ldrb	r3, [fp, #-2608]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L330
	ldr	r0, .L439+472
	bl	step_hash
	ldr	r3, [fp, #-1680]
	ldr	r2, .L439+476
	str	r2, [r3]
	b	.L331
.L330:
	ldr	r0, .L439+480
	bl	step_hash
	ldr	r3, [fp, #-1720]
	cmp	r3, #207
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L439+484
	ldr	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r2, [fp, #-2616]
	ldr	r3, [fp, #-1696]
	cmp	r3, #0
	beq	.L332
	mvn	r3, #1
	b	.L333
.L332:
	mov	r3, #0
.L333:
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r4, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r0, r3
	ldr	r3, .L439+500
	ldrsb	r3, [r3]
	mvn	r3, r3
	ldr	r2, .L439+488
	ldr	r2, [r2]
	and	r2, r2, #200
	cmp	r2, #0
	bne	.L334
	ldr	r2, [fp, #-2616]
	cmp	r2, #0
	beq	.L335
.L334:
	mov	r2, #1
	b	.L336
.L335:
	mov	r2, #0
.L336:
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, .L439+496
	ldr	r4, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #10
	ldrsh	r3, [r3]
	mov	r2, r3
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
.L331:
	ldr	r0, .L439+492
	bl	step_hash
	mov	r3, #4
	str	r3, [fp, #-2452]
	b	.L337
.L338:
	mov	r0, #492
	bl	step_hash
	ldr	r3, .L439+496
	ldr	r3, [r3]
	ldr	r2, [fp, #-1564]
	str	r2, [r3]
	ldr	r3, [fp, #-2452]
	sub	r3, r3, #1
	str	r3, [fp, #-2452]
.L337:
	ldr	r3, [fp, #-2452]
	cmp	r3, #0
	bge	.L338
	ldr	r3, .L439+500
	ldrsb	r3, [r3]
	and	r3, r3, #255
	sub	r3, r3, #1
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, .L439+500
	strb	r2, [r3]
.L319:
	ldr	r3, .L439+500
	ldrsb	r3, [r3]
	cmp	r3, #0
	bge	.L339
	ldr	r3, [fp, #-2324]
	add	r3, r3, #1
	str	r3, [fp, #-2324]
.L308:
	ldr	r3, [fp, #-2324]
	cmp	r3, #5
	bls	.L340
	b	.L367
.L307:
	ldr	r3, .L439+504
	str	r3, [fp, #-1808]
	ldr	r3, .L439+508
	str	r3, [fp, #-1804]
	ldr	r3, .L439+512
	str	r3, [fp, #-2500]
	ldr	r3, .L439+516
	str	r3, [fp, #-2524]
	mov	r3, #9
	str	r3, [fp, #-1800]
	ldr	r3, .L439+520
	str	r3, [fp, #-2520]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1796]
	mov	r3, #0
	str	r3, [fp, #-2496]
	b	.L342
.L345:
	mov	r3, #0
	str	r3, [fp, #-2492]
	b	.L343
.L344:
	ldr	r2, [fp, #-2496]
	ldr	r3, [fp, #-2492]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #1
	str	r2, [r3, #-1308]
	ldr	r3, [fp, #-2492]
	add	r3, r3, #1
	str	r3, [fp, #-2492]
.L343:
	ldr	r3, [fp, #-2492]
	cmp	r3, #0
	ble	.L344
	ldr	r3, [fp, #-2496]
	add	r3, r3, #1
	str	r3, [fp, #-2496]
.L342:
	ldr	r3, [fp, #-2496]
	cmp	r3, #5
	ble	.L345
	mov	r3, #0
	str	r3, [fp, #-2496]
	b	.L346
.L347:
	ldr	r3, [fp, #-2496]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #2512
	sub	r2, r2, #4
	sub	r2, r2, #12
	str	r2, [r3, #-1460]
	ldr	r3, [fp, #-2496]
	add	r3, r3, #1
	str	r3, [fp, #-2496]
.L346:
	ldr	r3, [fp, #-2496]
	cmp	r3, #3
	ble	.L347
	mov	r0, #528
	bl	step_hash
	ldr	r3, [fp, #-2616]
	and	r2, r3, #255
	ldr	r3, .L439+524
	ldrh	r3, [r3]
	mov	r1, r3
	ldr	r3, [fp, #-2320]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r1, r3
	cmp	r3, #0
	beq	.L348
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L349
	ldr	r3, .L441
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L349
	ldr	r3, [fp, #-2616]
	lsl	r3, r3, #24
	asr	r1, r3, #24
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #6
	ldrsb	r3, [r3]
	cmp	r1, r3
	beq	.L349
	mov	r3, #1
	b	.L350
.L349:
	mov	r3, #0
.L350:
	lsl	r3, r3, #16
	lsr	r1, r3, #16
	ldr	r3, [fp, #-2616]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	orr	r3, r1, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	ldr	r3, .L441+4
	mul	r3, r1, r3
	mov	r1, r3
	ldr	r3, [fp, #-2616]
	cmp	r3, r1
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r1, [fp, #-2616]
	and	r1, r1, #255
	lsl	r1, r1, #16
	lsr	r1, r1, #16
	mul	r3, r1, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r1, r3
	ldr	r3, .L441+8
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r1, r3
	cmp	r3, #0
	beq	.L348
	mov	r3, #1
	b	.L351
.L348:
	mov	r3, #0
.L351:
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, [fp, #-1808]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	lsl	r3, r2, r3
	cmp	r3, #0
	beq	.L352
	mov	r3, #0
	str	r3, [fp, #-1780]
	ldr	r3, .L441+12
	str	r3, [fp, #-2516]
	ldr	r3, .L441+16
	str	r3, [fp, #-2512]
	ldr	r3, .L441+20
	str	r3, [fp, #-1776]
	ldr	r3, .L441+24
	str	r3, [fp, #-1772]
	mov	r3, #0
	str	r3, [fp, #-1768]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-1764]
	ldr	r0, .L441+28
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #6
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L353
.L362:
	ldr	r3, .L441+32
	str	r3, [fp, #-1760]
	ldr	r3, .L441+36
	sub	ip, fp, #1408
	sub	ip, ip, #4
	ldm	r3, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	ldr	r0, .L441+40
	bl	step_hash
	ldr	r3, [fp, #-1804]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2500]
	orr	r3, r3, r2
	str	r3, [fp, #-2500]
	ldr	r0, .L441+44
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r2, [r3]
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	ldr	r1, [fp, #-1780]
	and	r0, r1, #255
	ldr	r1, .L441+48
	ldrb	r1, [r1]	@ zero_extendqisi2
	add	r1, r0, r1
	and	r0, r1, #255
	ldr	r1, [fp, #-2616]
	and	r1, r1, #255
	eor	r1, r1, r0
	and	r1, r1, #255
	lsl	r1, r1, #24
	asr	r1, r1, #24
	lsl	r3, r3, r1
	mov	r1, r3
	ldr	r3, [fp, #-1780]
	cmp	r3, r1
	movcc	r3, #1
	movcs	r3, #0
	and	r1, r3, #255
	ldr	r3, [fp, #-1824]
	ldr	r0, [r3]
	ldr	r3, [fp, #-1804]
	ldr	r3, [r3]
	cmp	r0, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r1
	and	r3, r3, #255
	cmp	r2, r3
	beq	.L354
	sub	r3, fp, #2512
	sub	r3, r3, #4
	str	r3, [fp, #-1756]
	ldr	r3, .L441+272
	str	r3, [fp, #-1752]
	ldr	r3, .L441+224
	str	r3, [fp, #-824]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-820]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-816]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-812]
	ldr	r3, .L441+272
	str	r3, [fp, #-808]
	ldr	r3, .L441+224
	str	r3, [fp, #-804]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-800]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-796]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-792]
	ldr	r3, .L441+272
	str	r3, [fp, #-788]
	ldr	r3, .L441+224
	str	r3, [fp, #-784]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-780]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-776]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-772]
	ldr	r3, .L441+272
	str	r3, [fp, #-768]
	ldr	r3, .L441+224
	str	r3, [fp, #-764]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-760]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-756]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-752]
	ldr	r3, .L441+272
	str	r3, [fp, #-748]
	ldr	r3, .L441+224
	str	r3, [fp, #-744]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-740]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-736]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-732]
	ldr	r3, .L441+272
	str	r3, [fp, #-728]
	ldr	r3, .L441+224
	str	r3, [fp, #-724]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-720]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-716]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-712]
	ldr	r3, .L441+272
	str	r3, [fp, #-708]
	ldr	r3, .L441+224
	str	r3, [fp, #-704]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-700]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-696]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-692]
	ldr	r3, .L441+272
	str	r3, [fp, #-688]
	ldr	r3, .L441+224
	str	r3, [fp, #-684]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-680]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-676]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-672]
	ldr	r3, .L441+272
	str	r3, [fp, #-668]
	ldr	r3, .L441+224
	str	r3, [fp, #-664]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-660]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-656]
	sub	r3, fp, #1248
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #60
	str	r3, [fp, #-652]
	ldr	r3, .L441+272
	str	r3, [fp, #-648]
	ldr	r3, .L441+52
	str	r3, [fp, #-1748]
	ldr	r0, .L441+56
	bl	step_hash
	ldr	r3, .L441+60
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L441+60
	str	r3, [r2]
	ldr	r0, .L441+64
	bl	step_hash
	ldr	r3, .L441+68
	mov	r2, #0
	str	r2, [r3]
	nop
	ldr	r3, .L441+68
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L360
	b	.L429
.L354:
	mov	r3, #0
	str	r3, [fp, #-2488]
	b	.L356
.L357:
	ldr	r3, [fp, #-2488]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #1248
	sub	r2, r2, #4
	sub	r2, r2, #12
	add	r2, r2, #40
	str	r2, [r3, #-804]
	ldr	r3, [fp, #-2488]
	add	r3, r3, #1
	str	r3, [fp, #-2488]
.L356:
	ldr	r3, [fp, #-2488]
	cmp	r3, #8
	ble	.L357
	ldr	r0, .L441+72
	bl	step_hash
	ldr	r3, .L441+76
	ldr	r3, [r3]
	b	.L427
.L360:
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-1744]
	mov	r3, #0
	str	r3, [fp, #-1740]
	ldr	r0, .L441+80
	bl	step_hash
	ldr	r3, [fp, #-1744]
	str	r3, [fp, #-1768]
	ldr	r0, .L441+84
	bl	step_hash
	ldr	r3, .L441+316
	ldr	r2, [r3]
	sub	r3, fp, #2496
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [r2]
	mov	r0, #512
	bl	step_hash
	ldr	r3, [fp, #-1740]
	b	.L427
.L429:
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #6
	sub	r2, fp, #20
	sub	r2, r2, #2560
	sub	r2, r2, #6
	ldrh	r2, [r2]	@ movhi
	add	r2, r2, #1
	strh	r2, [r3]	@ movhi
.L353:
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #6
	ldrh	r3, [r3]
	cmp	r3, #5
	bls	.L362
	b	.L367
.L352:
	mov	r3, #0
	strb	r3, [fp, #-2590]
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-1792]
	sub	r3, fp, #824
	mov	r2, #40
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r0, #516
	bl	step_hash
	ldr	r3, [fp, #-1792]
	ldr	r2, [r3]
	ldr	r3, .L441+272
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #9
	mov	ip, r3
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	lsr	r3, r3, #1
	and	r3, r3, #255
	mov	lr, r3
	ldrb	r3, [fp, #-2590]	@ zero_extendqisi2
	rsb	r1, r3, #0
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	and	r1, r1, r3
	ldr	r3, .L441+60
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r0, .L441+88
	smull	r4, r0, r3, r0
	asr	r0, r0, #13
	asr	r3, r3, #31
	sub	r3, r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r0, r3
	ldrb	r3, [fp, #-2590]	@ zero_extendqisi2
	cmp	r0, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	cmp	r1, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldrb	r3, [fp, #-2590]	@ zero_extendqisi2
	lsl	r3, r1, r3
	cmp	lr, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	sub	r1, r1, r3
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	cmp	r1, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r1, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	orr	r3, ip, r3
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	and	r2, r2, r3
	ldr	r3, [fp, #-1792]
	str	r2, [r3]
	ldr	r0, .L441+92
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r3, r3, #6
	ldrh	r3, [r3]
	cmp	r3, #0
	beq	.L364
	sub	r3, fp, #2512
	sub	r3, r3, #4
	sub	r3, r3, #8
	str	r3, [fp, #-1788]
	ldr	r3, .L441+272
	str	r3, [fp, #-1784]
	ldr	r0, .L441+96
	bl	step_hash
	ldr	r3, [fp, #-1784]
	b	.L427
.L364:
	mov	r0, #520
	bl	step_hash
	ldr	r3, .L441+48
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r4, r3
	ldr	r3, .L441+76
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-1812]
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, .L441+232
	ldrsh	r3, [r3]
	cmp	r2, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r4, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-1820]
	str	r2, [r3]
	ldr	r0, .L441+100
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2324]
	b	.L365
.L366:
	mov	r0, #524
	bl	step_hash
	ldr	r3, [fp, #-2292]
	mvn	r2, #0
	str	r2, [r3]
	ldr	r0, .L441+104
	bl	step_hash
	ldr	r3, .L441+316
	ldr	r3, [r3]
	ldr	r2, [fp, #-804]
	str	r2, [r3]
	ldr	r3, [fp, #-2324]
	add	r3, r3, #1
	str	r3, [fp, #-2324]
.L365:
	ldr	r3, [fp, #-2324]
	cmp	r3, #30
	bls	.L366
	b	.L367
.L306:
	mov	r3, #0
	str	r3, [fp, #-1828]
	ldr	r0, .L441+108
	bl	step_hash
	ldr	r3, [fp, #-1828]
	b	.L427
.L367:
	ldr	r0, .L441+112
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2616]
	b	.L368
.L426:
	ldr	r3, .L441+224
	str	r3, [fp, #-2484]
	ldr	r3, .L441+116
	sub	ip, fp, #1088
	sub	ip, ip, #4
	sub	ip, ip, #4
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	mov	r3, #0
	str	r3, [fp, #-2480]
	b	.L369
.L372:
	mov	r3, #0
	str	r3, [fp, #-2476]
	b	.L370
.L371:
	ldr	r2, [fp, #-2480]
	ldr	r3, [fp, #-2476]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L441+224
	str	r2, [r3, #-1308]
	ldr	r3, [fp, #-2476]
	add	r3, r3, #1
	str	r3, [fp, #-2476]
.L370:
	ldr	r3, [fp, #-2476]
	cmp	r3, #0
	ble	.L371
	ldr	r3, [fp, #-2480]
	add	r3, r3, #1
	str	r3, [fp, #-2480]
.L369:
	ldr	r3, [fp, #-2480]
	cmp	r3, #1
	ble	.L372
	mov	r0, #572
	bl	step_hash
	ldr	r3, .L441+76
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L373
	ldr	r0, .L441+120
	bl	step_hash
	ldr	r3, .L441+316
	ldr	r3, [r3]
	ldr	r2, [fp, #-2484]
	str	r2, [r3]
	ldr	r0, .L441+124
	bl	step_hash
	ldr	r3, .L441
	mov	r2, #29
	strh	r2, [r3]	@ movhi
	b	.L374
.L377:
	ldr	r0, .L441+128
	bl	step_hash
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	ldr	r2, .L441+60
	ldr	r2, [r2]
	lsl	r2, r2, #16
	asr	r2, r2, #16
	add	r3, r3, r2
	cmp	r3, #0
	beq	.L375
	ldr	r3, .L441+132
	ldrb	r3, [r3, #8]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L375
	mov	r2, #1
	b	.L376
.L375:
	mov	r2, #0
.L376:
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r3, .L441
	ldrsh	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #9
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L441
	strh	r3, [r2]	@ movhi
.L374:
	ldr	r3, .L441
	ldrsh	r3, [r3]
	cmp	r3, #7
	beq	.L377
	b	.L378
.L373:
	mvn	r3, #72
	strb	r3, [fp, #-2588]
	mov	r3, #0
	str	r3, [fp, #-1652]
	mov	r3, #0
	str	r3, [fp, #-2472]
	b	.L379
.L382:
	mov	r3, #0
	str	r3, [fp, #-2468]
	b	.L380
.L381:
	ldr	r2, [fp, #-2472]
	ldr	r3, [fp, #-2468]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mov	r2, #0
	str	r2, [r3, #-1244]
	ldr	r3, [fp, #-2468]
	add	r3, r3, #1
	str	r3, [fp, #-2468]
.L380:
	ldr	r3, [fp, #-2468]
	cmp	r3, #0
	ble	.L381
	ldr	r3, [fp, #-2472]
	add	r3, r3, #1
	str	r3, [fp, #-2472]
.L379:
	ldr	r3, [fp, #-2472]
	cmp	r3, #2
	ble	.L382
	mov	r0, #544
	bl	step_hash
	ldr	r3, [fp, #-1256]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	cmp	r3, r2
	movcs	r3, #1
	movcc	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+136
	bl	step_hash
	ldr	r3, .L441+272
	mvn	r2, #12
	str	r2, [r3]
	b	.L383
.L406:
	ldr	r3, .L441+140
	sub	ip, fp, #824
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-1180]
	ldr	r3, .L441+308
	str	r3, [fp, #-1176]
	sub	r3, fp, #2544
	sub	r3, r3, #4
	str	r3, [fp, #-1172]
	ldr	r3, .L441+308
	str	r3, [fp, #-1168]
	mov	r0, #548
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #804
	ldrh	r3, [r3, #2]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #804
	strh	r2, [r3, #2]	@ movhi
	ldr	r0, .L441+144
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2308]
	b	.L384
.L405:
	mov	r3, #0
	str	r3, [fp, #-2464]
	b	.L385
.L386:
	ldr	r3, [fp, #-2464]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #1248
	sub	r2, r2, #4
	sub	r2, r2, #12
	add	r2, r2, #8
	str	r2, [r3, #-1392]
	ldr	r3, [fp, #-2464]
	add	r3, r3, #1
	str	r3, [fp, #-2464]
.L385:
	ldr	r3, [fp, #-2464]
	cmp	r3, #0
	ble	.L386
	mov	r0, #552
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	and	r3, r3, r2
	mov	r2, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+148
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #804
	ldrh	r3, [r3, #2]
	cmp	r3, #0
	beq	.L387
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #4
	ldr	r2, .L441+152
	strh	r2, [r3]	@ movhi
	ldr	r0, .L441+156
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r4, [r3]
	ldr	r3, [fp, #-1412]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	orr	r5, r2, r3
	ldr	r3, [fp, #-1652]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L441+8
	ldrsb	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mul	r3, r2, r3
	cmp	r3, #0
	beq	.L388
	sub	r3, fp, #20
	sub	r3, r3, #804
	ldrh	r3, [r3, #2]
	cmp	r3, #0
	beq	.L388
	mov	r3, #1
	b	.L389
.L388:
	mov	r3, #0
.L389:
	cmn	r3, #1
	beq	.L390
	ldr	r2, .L441+160
	b	.L391
.L390:
	ldr	r2, .L441+164
.L391:
	ldr	r3, [fp, #-2616]
	cmp	r2, r3
	movcc	r3, #1
	movcs	r3, #0
	and	r3, r3, #255
	cmp	r5, r3
	movls	r3, #1
	movhi	r3, #0
	and	r3, r3, #255
	eor	r2, r4, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+168
	bl	step_hash
	ldr	r3, .L441+248
	ldr	r3, [r3]
	cmp	r3, #1
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	asr	r2, r2, r3
	ldr	r3, .L441+224
	ldr	r3, [r3]
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r2, r3, #16
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	orr	r3, r2, r3
	lsl	r3, r3, #16
	asr	r1, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #4
	sub	r2, fp, #20
	sub	r2, r2, #2528
	sub	r2, r2, #4
	ldrh	r2, [r2]	@ movhi
	and	r2, r2, r1
	strh	r2, [r3]	@ movhi
	mov	r0, #556
	bl	step_hash
	ldr	r3, .L441+308
	str	r3, [fp, #-1168]
	ldr	r0, .L441+172
	bl	step_hash
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	cmp	r3, #4
	movhi	r3, #1
	movls	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L441+304
	ldr	r3, [r3, #116]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r3, #0
	beq	.L394
	b	.L430
.L387:
	mov	r3, #0
	str	r3, [fp, #-1648]
	ldr	r0, .L441+176
	bl	step_hash
	ldr	r3, [fp, #-1648]
	b	.L427
.L430:
	ldr	r0, .L441+180
	bl	step_hash
	ldr	r3, .L441+76
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L434
	ldr	r0, .L441+184
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r2, [r3]
	ldr	r3, [fp, #-2484]
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+188
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	cmp	r3, #0
	bne	.L435
	mov	r0, #564
	bl	step_hash
	ldr	r3, [fp, #-2292]
	mov	r2, #7
	str	r2, [r3]
	b	.L404
.L394:
	ldr	r0, .L441+192
	bl	step_hash
	ldr	r3, .L441+132
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	cmp	r3, r2
	movhi	r3, #1
	movls	r3, #0
	and	r2, r3, #255
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r1, [r3]
	ldr	r3, .L441+68
	ldr	r3, [r3]
	cmp	r1, r3
	movcs	r3, #1
	movcc	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r2
	and	r3, r3, #255
	asr	r2, r3, #1
	ldr	r3, [fp, #-2484]
	ldr	r3, [r3]
	cmp	r2, r3
	bgt	.L400
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r2, [r3]
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	cmp	r2, r3
	bge	.L401
.L400:
	mov	r3, #1
	b	.L402
.L401:
	mov	r3, #0
.L402:
	cmp	r3, #1
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	sub	r3, r2, r3
	str	r3, [fp, #-1064]
	ldr	r0, .L441+196
	bl	step_hash
	ldr	r3, .L441+76
	ldr	r3, [r3]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L436
	mov	r0, #568
	bl	step_hash
	ldr	r3, .L441+304
	ldr	r3, [r3, #72]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	mov	r0, #9
	bl	__aeabi_idiv
	mov	r3, r0
	and	r2, r3, #255
	ldr	r3, [fp, #-2484]
	ldr	r3, [r3]
	and	r3, r3, #255
	ldr	r1, .L441+132
	ldrb	r1, [r1, #4]	@ zero_extendqisi2
	mul	r3, r1, r3
	and	r3, r3, #255
	sub	r3, r2, r3
	and	r3, r3, #255
	add	r3, r3, #1
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, .L441+132
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	mov	r2, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	b	.L404
.L435:
	nop
	b	.L404
.L442:
	.align	2
.L441:
	.word	g_670
	.word	-32406
	.word	g_319
	.word	-1780926042
	.word	1371892162
	.word	-638612266
	.word	-1423997139
	.word	514
	.word	667269931
	.word	.LC33
	.word	501
	.word	506
	.word	g_876
	.word	-14713621
	.word	503
	.word	g_891
	.word	513
	.word	g_145
	.word	505
	.word	g_895
	.word	510
	.word	511
	.word	1869619645
	.word	527
	.word	518
	.word	526
	.word	525
	.word	531
	.word	614
	.word	.LC34
	.word	537
	.word	542
	.word	541
	.word	g_178
	.word	571
	.word	.LC35
	.word	570
	.word	559
	.word	20111
	.word	554
	.word	65534
	.word	65535
	.word	555
	.word	569
	.word	558
	.word	561
	.word	562
	.word	563
	.word	566
	.word	567
	.word	611
	.word	579
	.word	1283003107
	.word	575
	.word	g_627
	.word	578
	.word	g_2
	.word	g_1001
	.word	g_173
	.word	582
	.word	g_319
	.word	590
	.word	g_760
	.word	g_363
	.word	585
	.word	587
	.word	-1679187384
	.word	589
	.word	g_64
	.word	63130
	.word	595
	.word	594
	.word	610
	.word	609
	.word	602
	.word	g_73
	.word	g_681
	.word	g_578
	.word	605
	.word	g_214
	.word	613
	.word	615
	.word	.LC49
.L436:
	nop
.L404:
	ldr	r3, [fp, #-2308]
	add	r3, r3, #1
	str	r3, [fp, #-2308]
.L384:
	ldr	r3, [fp, #-2308]
	cmp	r3, #13
	bgt	.L405
	b	.L396
.L434:
	nop
.L396:
	ldr	r3, .L441+272
	ldr	r3, [r3]
	add	r3, r3, #2
	ldr	r2, .L441+272
	str	r3, [r2]
.L383:
	ldr	r3, .L441+272
	ldr	r3, [r3]
	cmp	r3, #9
	ble	.L406
.L378:
	ldr	r0, .L441+200
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	lsl	r3, r3, #4
	cmp	r3, #0
	beq	.L407
	mvn	r3, #0
	strb	r3, [fp, #-2587]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-1624]
	sub	r3, fp, #1360
	sub	r3, r3, #4
	sub	r3, r3, #12
	add	r3, r3, #44
	str	r3, [fp, #-1620]
	ldr	r0, .L441+204
	bl	step_hash
	ldrb	r3, [fp, #-2617]	@ zero_extendqisi2
	mov	r1, r3
	ldr	r3, .L441+228
	ldr	r3, [r3]
	and	r2, r3, #255
	ldrb	r3, [fp, #-2587]	@ zero_extendqisi2
	add	r3, r2, r3
	and	r3, r3, #255
	rsb	r3, r3, #1
	and	r3, r3, #255
	mul	r3, r1, r3
	cmp	r3, #0
	beq	.L408
	ldr	r3, .L441+208
	str	r3, [fp, #-1612]
	ldr	r0, .L441+212
	bl	step_hash
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r1, [r3]
	ldr	r3, .L441+216
	ldrh	r3, [r3]
	lsr	r3, r3, #9
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L441+316
	ldr	r4, [r2]
	mov	r2, r3
	ldr	r0, [fp, #-1612]
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	mov	r0, #576
	bl	step_hash
	ldr	r3, [fp, #-2484]
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L409
	b	.L410
.L408:
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1616]
	ldr	r0, .L441+220
	bl	step_hash
	ldr	r3, [fp, #-2288]
	b	.L427
.L409:
	mov	r0, #580
	bl	step_hash
	ldr	r3, [fp, #-2616]
	cmp	r3, #0
	beq	.L411
	ldr	r3, .L441+224
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-2484]
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	cmp	r2, r3
	bne	.L412
	ldr	r3, .L441+240
	ldrsb	r3, [r3]
	mov	r2, r3
	ldr	r3, .L441+272
	ldr	r3, [r3]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L441+232
	ldrsh	r3, [r3]
	orr	r3, r2, r3
	cmp	r3, #0
	beq	.L413
.L412:
	mov	r3, #1
	b	.L414
.L413:
	mov	r3, #0
.L414:
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-2484]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mul	r2, r3, r2
	ldr	r3, .L441+228
	ldr	r3, [r3]
	cmp	r2, r3
	bne	.L411
	mov	r3, #1
	b	.L415
.L411:
	mov	r3, #0
.L415:
	and	r3, r3, #255
	and	r3, r3, #126
	cmp	r3, #143
	movgt	r3, #1
	movle	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L441+232
	ldrsh	r3, [r3]
	and	r3, r3, #255
	sub	r0, r2, r3
	ldr	r1, [fp, #-2616]
	ldr	r3, [fp, #-2484]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	bl	func_22
	str	r0, [fp, #-2484]
	b	.L416
.L407:
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #2
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	mov	r3, #0
	str	r3, [fp, #-2460]
	b	.L417
.L418:
	ldr	r3, [fp, #-2460]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	sub	r2, fp, #2528
	sub	r2, r2, #4
	sub	r2, r2, #8
	str	r2, [r3, #-1160]
	ldr	r3, [fp, #-2460]
	add	r3, r3, #1
	str	r3, [fp, #-2460]
.L417:
	ldr	r3, [fp, #-2460]
	cmp	r3, #2
	ble	.L418
	ldr	r0, .L441+236
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r1, [r3]
	ldr	r3, .L441+240
	ldrsb	r3, [r3]
	mov	r2, r3
	mov	r3, r2
	lsl	r3, r3, #26
	sub	r3, r3, r2
	lsl	r3, r3, #5
	add	r3, r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	eor	r2, r1, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+244
	bl	step_hash
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L419
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #12
	str	r3, [fp, #-1628]
	mov	r0, #584
	bl	step_hash
	ldr	r0, [fp, #-2616]
	ldr	r3, .L441+248
	ldr	r1, [r3]
	ldr	r3, .L441+252
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L441+316
	ldr	r4, [r2]
	mov	r2, r3
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	ldr	r0, .L441+256
	bl	step_hash
	ldr	r3, [fp, #-1324]
	b	.L427
.L419:
	ldr	r0, .L441+260
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r2, .L441+264
	str	r2, [r3]
	mov	r0, #588
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r2, [r3]
	sub	r3, fp, #2608
	sub	r3, r3, #4
	sub	r3, r3, #5
	ldrsb	r3, [r3]
	orr	r2, r2, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+268
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r3, [r3]
	ldr	r2, .L441+272
	ldr	r2, [r2]
	ldr	r1, .L441+276
	cmp	r2, r1
	movle	r2, #1
	movgt	r2, #0
	and	r2, r2, #255
	eor	r2, r2, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+280
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2536]
	b	.L421
.L422:
	mov	r3, #0
	str	r3, [fp, #-1632]
	ldr	r0, .L441+284
	bl	step_hash
	ldr	r3, .L441+316
	ldr	r3, [r3]
	ldr	r2, [fp, #-1632]
	str	r2, [r3]
	ldr	r3, [fp, #-2536]
	add	r3, r3, #1
	str	r3, [fp, #-2536]
.L421:
	ldr	r3, [fp, #-2536]
	cmp	r3, #14
	beq	.L422
	ldr	r0, .L441+288
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-2312]
	b	.L423
.L425:
	mov	r3, #0
	str	r3, [fp, #-1644]
	ldr	r0, .L441+292
	bl	step_hash
	mov	r3, #0
	strb	r3, [fp, #-2603]
	ldrb	r3, [fp, #-2603]	@ zero_extendqisi2
	cmp	r3, #53
	bne	.L424
	mvn	r3, #5
	str	r3, [fp, #-1640]
	mov	r3, #0
	str	r3, [fp, #-1636]
	ldr	r0, .L441+296
	bl	step_hash
	ldr	r3, [fp, #-2292]
	ldr	r4, [r3]
	ldrb	r3, [fp, #-2618]
	eor	r3, r3, #111
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r2, r3, #24
	ldr	r3, [fp, #-1640]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r2, r3
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	ldr	r3, .L441+300
	ldrh	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L441+304
	ldr	r3, [r3, #40]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	add	r3, r2, r3
	and	r2, r4, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	mov	r0, #608
	bl	step_hash
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-824]
	mov	r3, #0
	str	r3, [fp, #-820]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-816]
	ldr	r3, .L441+308
	str	r3, [fp, #-812]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-808]
	mov	r3, #0
	str	r3, [fp, #-804]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-800]
	ldr	r3, .L441+308
	str	r3, [fp, #-796]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-792]
	mov	r3, #0
	str	r3, [fp, #-788]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-784]
	ldr	r3, .L441+308
	str	r3, [fp, #-780]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-776]
	mov	r3, #0
	str	r3, [fp, #-772]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-768]
	ldr	r3, .L441+308
	str	r3, [fp, #-764]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-760]
	mov	r3, #0
	str	r3, [fp, #-756]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-752]
	ldr	r3, .L441+308
	str	r3, [fp, #-748]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-744]
	mov	r3, #0
	str	r3, [fp, #-740]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-736]
	ldr	r3, .L441+308
	str	r3, [fp, #-732]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-728]
	mov	r3, #0
	str	r3, [fp, #-724]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-720]
	ldr	r3, .L441+308
	str	r3, [fp, #-716]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-712]
	mov	r3, #0
	str	r3, [fp, #-708]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-704]
	ldr	r3, .L441+308
	str	r3, [fp, #-700]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-696]
	mov	r3, #0
	str	r3, [fp, #-692]
	sub	r3, fp, #2528
	sub	r3, r3, #4
	sub	r3, r3, #4
	str	r3, [fp, #-688]
	ldr	r3, .L441+308
	str	r3, [fp, #-684]
	mov	r0, #604
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2528
	sub	r3, r3, #2
	ldrh	r3, [r3]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r1, [fp, #-1636]
	mov	r0, #1
	bl	__aeabi_idiv
	mov	r3, r0
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mul	r3, r4, r3
	mov	r2, r3
	ldr	r3, [fp, #-2616]
	eor	r3, r3, r2
	mov	r2, r3
	ldr	r3, [fp, #-2292]
	str	r2, [r3]
	ldr	r0, .L441+312
	bl	step_hash
	ldr	r3, [fp, #-1644]
	b	.L427
.L424:
	ldr	r3, [fp, #-2312]
	sub	r3, r3, #1
	str	r3, [fp, #-2312]
.L423:
	ldr	r3, [fp, #-2312]
	cmn	r3, #5
	blt	.L425
.L416:
	mov	r0, #612
	bl	step_hash
	ldr	r3, [fp, #-2484]
	ldr	r0, [r3]
	ldr	r3, [fp, #-2484]
	ldr	r1, [r3]
	ldrb	r3, [fp, #-2618]	@ zero_extendqisi2
	lsl	r3, r3, #16
	asr	r3, r3, #16
	ldr	r2, .L441+316
	ldr	r4, [r2]
	mov	r2, r3
	bl	func_22
	mov	r3, r0
	str	r3, [r4]
	ldr	r0, .L441+320
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #2560
	ldrh	r2, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #2560
	sub	r2, r2, #1
	strh	r2, [r3]	@ movhi
.L410:
	ldr	r3, [fp, #-2616]
	add	r3, r3, #9
	str	r3, [fp, #-2616]
.L368:
	ldr	r3, [fp, #-2616]
	cmp	r3, #12
	bne	.L426
	ldr	r0, .L441+324
	bl	step_hash
	ldr	r3, [fp, #-1600]
.L427:
	ldr	r2, .L441+328
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L428
	bl	__stack_chk_fail
.L428:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
	.size	func_50, .-func_50
	.section	.rodata
	.align	2
.LC36:
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.word	1428426090
	.word	-7
	.word	-7
	.word	-7
	.align	2
.LC37:
	.word	1
	.word	-8
	.word	1
	.word	-770712681
	.word	0
	.word	1
	.word	-7
	.word	-6
	.word	1
	.word	-8
	.word	1
	.word	-770712681
	.word	0
	.word	1
	.word	-7
	.word	-6
	.word	1
	.word	-8
	.word	1
	.word	-770712681
	.word	0
	.word	1
	.word	-7
	.word	-6
	.word	1
	.word	-8
	.word	1
	.word	-770712681
	.word	0
	.word	1
	.word	-7
	.word	-6
	.word	1
	.word	-8
	.word	1
	.word	-770712681
	.word	0
	.word	1
	.word	-7
	.word	-6
	.align	2
.LC38:
	.word	-1776443221
	.word	-10
	.word	-1776443221
	.word	-10
	.word	-1776443221
	.word	-10
	.align	2
.LC39:
	.word	g_214
	.word	g_214
	.word	0
	.word	g_214
	.word	g_214
	.word	0
	.word	g_214
	.align	2
.LC40:
	.word	9
	.word	1
	.word	9
	.word	1
	.word	9
	.word	1
	.word	9
	.word	1
	.align	2
.LC50:
	.word	__stack_chk_guard
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	func_59, %function
func_59:
	@ args = 0, pretend = 0, frame = 968
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, fp, lr}
	add	fp, sp, #20
	sub	sp, sp, #968
	mov	r2, r0
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	strh	r2, [r3]	@ movhi
	ldr	r3, .L518
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	mov	r3,#0
	ldr	r3, .L518+4
	str	r3, [fp, #-960]
	ldr	r3, .L518+4
	str	r3, [fp, #-920]
	ldr	r3, .L518+4
	str	r3, [fp, #-916]
	sub	r3, fp, #764
	str	r3, [fp, #-956]
	sub	r3, fp, #764
	str	r3, [fp, #-952]
	mov	r3, #0
	str	r3, [fp, #-912]
	ldr	r3, .L518+4
	str	r3, [fp, #-908]
	mov	r3, #0
	str	r3, [fp, #-344]
	ldr	r3, .L518+8
	str	r3, [fp, #-340]
	sub	r3, fp, #764
	str	r3, [fp, #-336]
	ldr	r3, .L518+8
	str	r3, [fp, #-332]
	ldr	r3, .L518+8
	str	r3, [fp, #-328]
	ldr	r3, .L518+4
	str	r3, [fp, #-324]
	ldr	r3, .L518+8
	str	r3, [fp, #-320]
	ldr	r3, .L518+8
	str	r3, [fp, #-316]
	mov	r3, #0
	str	r3, [fp, #-312]
	ldr	r3, .L518+8
	str	r3, [fp, #-308]
	sub	r3, fp, #764
	str	r3, [fp, #-304]
	ldr	r3, .L518+8
	str	r3, [fp, #-300]
	ldr	r3, .L518+8
	str	r3, [fp, #-296]
	ldr	r3, .L518+4
	str	r3, [fp, #-292]
	ldr	r3, .L518+8
	str	r3, [fp, #-288]
	ldr	r3, .L518+8
	str	r3, [fp, #-284]
	mov	r3, #0
	str	r3, [fp, #-280]
	ldr	r3, .L518+8
	str	r3, [fp, #-276]
	sub	r3, fp, #764
	str	r3, [fp, #-272]
	ldr	r3, .L518+8
	str	r3, [fp, #-268]
	ldr	r3, .L518+8
	str	r3, [fp, #-264]
	ldr	r3, .L518+4
	str	r3, [fp, #-260]
	ldr	r3, .L518+8
	str	r3, [fp, #-256]
	ldr	r3, .L518+8
	str	r3, [fp, #-252]
	mov	r3, #0
	str	r3, [fp, #-248]
	ldr	r3, .L518+8
	str	r3, [fp, #-244]
	sub	r3, fp, #764
	str	r3, [fp, #-240]
	ldr	r3, .L518+8
	str	r3, [fp, #-236]
	ldr	r3, .L518+8
	str	r3, [fp, #-232]
	ldr	r3, .L518+4
	str	r3, [fp, #-228]
	ldr	r3, .L518+8
	str	r3, [fp, #-224]
	ldr	r3, .L518+8
	str	r3, [fp, #-220]
	mov	r3, #0
	str	r3, [fp, #-216]
	ldr	r3, .L518+8
	str	r3, [fp, #-212]
	sub	r3, fp, #764
	str	r3, [fp, #-208]
	ldr	r3, .L518+8
	str	r3, [fp, #-204]
	ldr	r3, .L518+8
	str	r3, [fp, #-200]
	ldr	r3, .L518+4
	str	r3, [fp, #-196]
	ldr	r3, .L518+8
	str	r3, [fp, #-192]
	ldr	r3, .L518+8
	str	r3, [fp, #-188]
	mov	r3, #0
	str	r3, [fp, #-184]
	ldr	r3, .L518+8
	str	r3, [fp, #-180]
	sub	r3, fp, #764
	str	r3, [fp, #-176]
	ldr	r3, .L518+8
	str	r3, [fp, #-172]
	ldr	r3, .L518+8
	str	r3, [fp, #-168]
	ldr	r3, .L518+4
	str	r3, [fp, #-164]
	ldr	r3, .L518+8
	str	r3, [fp, #-160]
	ldr	r3, .L518+8
	str	r3, [fp, #-156]
	mov	r3, #0
	str	r3, [fp, #-152]
	ldr	r3, .L518+8
	str	r3, [fp, #-148]
	sub	r3, fp, #764
	str	r3, [fp, #-144]
	ldr	r3, .L518+8
	str	r3, [fp, #-140]
	ldr	r3, .L518+8
	str	r3, [fp, #-136]
	ldr	r3, .L518+4
	str	r3, [fp, #-132]
	ldr	r3, .L518+8
	str	r3, [fp, #-128]
	ldr	r3, .L518+8
	str	r3, [fp, #-124]
	mov	r3, #0
	str	r3, [fp, #-120]
	ldr	r3, .L518+8
	str	r3, [fp, #-116]
	sub	r3, fp, #764
	str	r3, [fp, #-112]
	ldr	r3, .L518+8
	str	r3, [fp, #-108]
	ldr	r3, .L518+8
	str	r3, [fp, #-104]
	ldr	r3, .L518+4
	str	r3, [fp, #-100]
	ldr	r3, .L518+8
	str	r3, [fp, #-96]
	ldr	r3, .L518+8
	str	r3, [fp, #-92]
	mov	r3, #0
	str	r3, [fp, #-88]
	ldr	r3, .L518+8
	str	r3, [fp, #-84]
	sub	r3, fp, #764
	str	r3, [fp, #-80]
	ldr	r3, .L518+8
	str	r3, [fp, #-76]
	ldr	r3, .L518+8
	str	r3, [fp, #-72]
	ldr	r3, .L518+4
	str	r3, [fp, #-68]
	ldr	r3, .L518+8
	str	r3, [fp, #-64]
	ldr	r3, .L518+8
	str	r3, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-56]
	ldr	r3, .L518+8
	str	r3, [fp, #-52]
	sub	r3, fp, #764
	str	r3, [fp, #-48]
	ldr	r3, .L518+8
	str	r3, [fp, #-44]
	ldr	r3, .L518+8
	str	r3, [fp, #-40]
	ldr	r3, .L518+4
	str	r3, [fp, #-36]
	ldr	r3, .L518+8
	str	r3, [fp, #-32]
	ldr	r3, .L518+8
	str	r3, [fp, #-28]
	mov	r3, #0
	str	r3, [fp, #-940]
	sub	r3, fp, #960
	str	r3, [fp, #-904]
	ldr	r3, .L518+12
	str	r3, [fp, #-900]
	mov	r3, #0
	str	r3, [fp, #-936]
	b	.L444
.L445:
	ldr	r3, [fp, #-936]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	ldr	r2, .L518+16
	str	r2, [r3, #-744]
	ldr	r3, [fp, #-936]
	add	r3, r3, #1
	str	r3, [fp, #-936]
.L444:
	ldr	r3, [fp, #-936]
	cmp	r3, #2
	ble	.L445
	mov	r0, #21
	bl	step_hash
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L518+84
	strh	r3, [r2]	@ movhi
	mov	r0, #133
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, .L518+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L446
	ldr	r3, [fp, #-940]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, r3
	ldr	r3, .L518+4
	ldr	r3, [r3]
	lsl	r3, r3, #16
	asr	r3, r3, #16
	rsb	r3, r3, #0
	and	r3, r3, #255
	sub	r3, r3, #7
	and	r3, r3, #255
	and	r3, r3, #21
	add	r3, r1, r3
	cmp	r3, #0
	beq	.L446
	mov	r3, #1
	b	.L447
.L446:
	mov	r3, #0
.L447:
	lsl	r3, r3, #16
	asr	r3, r3, #16
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	cmp	r3, #0
	beq	.L448
	mov	r2, #64
	b	.L449
.L448:
	mov	r2, #0
.L449:
	ldr	r3, [fp, #-952]
	ldr	r3, [r3]
	cmp	r2, r3
	beq	.L450
	sub	r3, fp, #764
	str	r3, [fp, #-948]
	ldr	r3, .L518+20
	str	r3, [fp, #-792]
	mov	r0, #70
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-940]
	b	.L451
.L481:
	sub	r3, fp, #952
	str	r3, [fp, #-780]
	sub	r3, fp, #20
	sub	r3, r3, #948
	ldr	r2, .L518+24
	strh	r2, [r3]	@ movhi
	mov	r0, #68
	bl	step_hash
	ldr	r3, .L518+84
	mvn	r2, #7
	strh	r2, [r3]	@ movhi
	b	.L452
.L480:
	sub	r3, fp, #764
	add	r3, r3, #4
	str	r3, [fp, #-944]
	mov	r0, #37
	bl	step_hash
	ldr	r3, .L518+8
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L453
	mov	r0, #30
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	b	.L512
.L453:
	mov	r0, #36
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L455
.L456:
	sub	r3, fp, #20
	sub	r3, r3, #940
	sub	r3, r3, #2
	mov	r2, #7
	strh	r2, [r3]	@ movhi
	sub	r3, fp, #344
	add	r3, r3, #108
	str	r3, [fp, #-504]
	sub	r3, fp, #952
	str	r3, [fp, #-500]
	sub	r3, fp, #344
	add	r3, r3, #108
	str	r3, [fp, #-496]
	sub	r3, fp, #952
	str	r3, [fp, #-492]
	sub	r3, fp, #344
	add	r3, r3, #108
	str	r3, [fp, #-488]
	sub	r3, fp, #952
	str	r3, [fp, #-484]
	mov	r0, #35
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r0, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #940
	sub	r3, r3, #2
	ldrh	r1, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #940
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	mov	r2, r3
	bl	func_22
	mov	r3, r0
	str	r3, [fp, #-944]
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrh	r3, [r3]
	sub	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	strh	r2, [r3]	@ movhi
.L455:
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmn	r3, #16
	bge	.L456
	mov	r0, #38
	bl	step_hash
	ldr	r3, .L518+4
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L515
	mov	r0, #67
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r3, r3, #24
	cmp	r3, #0
	beq	.L459
	mov	r3, #0
	str	r3, [fp, #-932]
	mov	r0, #40
	bl	step_hash
	ldr	r3, [fp, #-916]
	ldr	r2, [r3]
	ldr	r3, .L518+8
	ldr	r3, [r3]
	and	r3, r3, #255
	mov	ip, r3
	ldr	r3, [fp, #-932]
	and	r1, r3, #255
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L460
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	lsl	r3, r3, #1
	ldr	r0, [fp, #-948]
	cmp	r0, #0
	moveq	r0, #1
	movne	r0, #0
	and	r0, r0, #255
	eor	r0, r0, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrh	r3, [r3]
	lsl	r3, r3, #5
	cmp	r0, r3
	bge	.L461
.L460:
	mov	r3, #1
	b	.L462
.L461:
	mov	r3, #0
.L462:
	and	r3, r3, #255
	sub	r3, r1, r3
	and	r3, r3, #255
	sub	r3, r3, #34
	and	r3, r3, #255
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, .L518+8
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, r1
	lsl	r3, r3, #24
	asr	r1, r3, #24
	ldr	r3, [fp, #-944]
	ldr	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	eor	r3, r3, r1
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	mul	r1, r3, ip
	ldr	r3, .L518+8
	ldr	r3, [r3]
	cmp	r1, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	orr	r2, r2, r3
	ldr	r3, [fp, #-916]
	str	r2, [r3]
	mov	r0, #45
	bl	step_hash
	mov	r3, #9
	str	r3, [fp, #-932]
	b	.L463
.L467:
	mov	r0, #44
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	lsl	r3, r3, #6
	eor	r2, r2, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L464
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	bne	.L464
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	ldr	r1, .L518+84
	ldrh	r1, [r1]
	cmp	r3, r1
	beq	.L465
.L464:
	mov	r3, #1
	b	.L466
.L465:
	mov	r3, #0
.L466:
	cmp	r3, r2
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-916]
	str	r2, [r3]
	ldr	r3, [fp, #-932]
	add	r3, r3, #1
	str	r3, [fp, #-932]
.L463:
	ldr	r3, [fp, #-932]
	cmp	r3, #24
	ble	.L467
	b	.L458
.L459:
	ldr	r3, .L518+4
	str	r3, [fp, #-776]
	ldr	r3, .L518+28
	str	r3, [fp, #-772]
	mov	r0, #55
	bl	step_hash
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, r3
	sub	r3, fp, #944
	ldr	r2, [fp, #-780]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mul	r3, r1, r3
	ldr	r2, .L518+32
	cmp	r3, r2
	beq	.L469
	mov	r3, #0
	strb	r3, [fp, #-969]
	mov	r0, #48
	bl	step_hash
	ldr	r3, [fp, #-780]
	ldr	r3, [r3]
	ldr	r1, [r3]
	ldr	r3, .L518+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-780]
	ldr	r3, [r3]
	orr	r2, r1, r2
	str	r2, [r3]
	mov	r0, #49
	bl	step_hash
	sub	r3, fp, #968
	sub	r3, r3, #1
	ldrsb	r2, [r3]
	ldr	r3, .L518+8
	ldr	r3, [r3]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, .L518+4
	ldr	r2, [r3]
	ldr	r3, .L518+8
	ldr	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	add	r3, r1, r3
	ldr	r2, .L518+4
	str	r3, [r2]
	b	.L470
.L469:
	mov	r0, #51
	bl	step_hash
	ldr	r3, [fp, #-920]
	ldr	r2, [r3]
	ldr	r3, .L518+8
	ldr	r3, [r3]
	and	r2, r2, r3
	ldr	r3, [fp, #-920]
	str	r2, [r3]
	mov	r0, #52
	bl	step_hash
	ldr	r3, [fp, #-944]
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	bge	.L471
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	mov	r1, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r1, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	b	.L472
.L471:
	mov	r3, #0
.L472:
	sub	r3, r2, r3
	ldr	r2, [fp, #-944]
	ldr	r2, [r2]
	cmp	r2, #0
	movne	r2, #1
	moveq	r2, #0
	and	r2, r2, #255
	cmp	r3, r2
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	mov	r4, r3
	ldr	r3, .L518+4
	ldr	r3, [r3]
	lsl	r3, r3, #1
	ldr	r2, .L518+8
	ldr	r2, [r2]
	mov	r1, r2
	mov	r0, r3
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r3, #255
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r4, r3
	movge	r3, #1
	movlt	r3, #0
	and	r3, r3, #255
	lsl	r3, r3, #16
	asr	r1, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #948
	sub	r2, fp, #20
	sub	r2, r2, #948
	ldrh	r2, [r2]	@ movhi
	orr	r2, r1, r2
	strh	r2, [r3]	@ movhi
	mov	r0, #53
	bl	step_hash
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	cmp	r3, #0
	bne	.L516
	mov	r0, #54
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, .L518+4
	ldr	r3, [r3]
	cmp	r2, r3
	movge	r3, #1
	movlt	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-780]
	ldr	r3, [r3]
	str	r2, [r3]
.L470:
	mov	r0, #61
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #948
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L475
.L476:
	sub	r3, fp, #948
	str	r3, [fp, #-768]
	mov	r0, #59
	bl	step_hash
	ldr	r3, .L518+4
	ldr	r2, [r3]
	ldr	r3, [fp, #-908]
	str	r2, [r3]
	mov	r0, #60
	bl	step_hash
	ldr	r3, [fp, #-960]
	ldr	r2, [r3]
	ldr	r3, [fp, #-768]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r1, r3
	ldr	r3, [fp, #-960]
	eor	r2, r2, r1
	str	r2, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #948
	ldrh	r3, [r3]
	sub	r3, r3, #9
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #948
	strh	r2, [r3]	@ movhi
.L475:
	sub	r3, fp, #20
	sub	r3, r3, #948
	ldrsh	r3, [r3]
	cmn	r3, #11
	bge	.L476
	mov	r0, #66
	bl	step_hash
	ldr	r3, .L518+4
	mov	r2, #5
	str	r2, [r3]
	b	.L477
.L478:
	mov	r0, #65
	bl	step_hash
	ldr	r3, .L518+148
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L518+148
	str	r3, [r2]
	ldr	r3, .L518+4
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L518+4
	str	r3, [r2]
.L477:
	ldr	r3, .L518+4
	ldr	r3, [r3]
	cmn	r3, #11
	bge	.L478
	b	.L458
.L515:
	nop
.L458:
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	add	r3, r3, #5
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L518+84
	strh	r3, [r2]	@ movhi
.L452:
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	cmp	r3, #46
	beq	.L480
	b	.L479
.L516:
	nop
.L479:
	mov	r0, #69
	bl	step_hash
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	and	r3, r3, #255
	mov	r2, r3
	mov	r3, #206
	mul	r1, r3, r2
	ldr	r3, [fp, #-780]
	ldr	r3, [r3]
	ldr	r2, [r3]
	ldr	r3, [fp, #-960]
	orr	r2, r1, r2
	str	r2, [r3]
	ldr	r3, [fp, #-940]
	add	r3, r3, #2
	str	r3, [fp, #-940]
.L451:
	ldr	r3, [fp, #-940]
	cmp	r3, #25
	beq	.L481
	mov	r0, #80
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-940]
	b	.L482
.L485:
	mov	r3, #54
	strb	r3, [fp, #-971]
	mov	r3, #102
	strb	r3, [fp, #-970]
	sub	r3, fp, #764
	add	r3, r3, #4
	str	r3, [fp, #-788]
	mov	r0, #78
	bl	step_hash
	ldr	r3, .L518+148
	mov	r2, #24
	str	r2, [r3]
	b	.L483
.L484:
	mov	r3, #0
	str	r3, [fp, #-784]
	mov	r0, #77
	bl	step_hash
	ldr	r3, [fp, #-920]
	ldr	r2, [r3]
	ldrb	r3, [fp, #-971]	@ zero_extendqisi2
	ldr	r1, [fp, #-784]
	and	r1, r1, #255
	lsl	r1, r1, #16
	lsr	r1, r1, #16
	lsl	r1, r1, #2
	lsl	r1, r1, #16
	lsr	r1, r1, #16
	mul	r3, r1, r3
	eor	r2, r2, r3
	ldr	r3, [fp, #-920]
	str	r2, [r3]
	ldr	r3, .L518+148
	ldr	r3, [r3]
	sub	r3, r3, #5
	ldr	r2, .L518+148
	str	r3, [r2]
.L483:
	ldr	r3, .L518+148
	ldr	r3, [r3]
	cmp	r3, #22
	bhi	.L484
	mov	r0, #79
	bl	step_hash
	sub	r3, fp, #968
	sub	r3, r3, #2
	ldrsb	r3, [r3]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, [fp, #-788]
	cmp	r3, #0
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	movlt	r3, #1
	movge	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	cmp	r3, #0
	movle	r3, #1
	movgt	r3, #0
	and	r2, r3, #255
	ldr	r3, [fp, #-952]
	str	r2, [r3]
	ldr	r3, [fp, #-940]
	add	r3, r3, #6
	str	r3, [fp, #-940]
.L482:
	ldr	r3, [fp, #-940]
	cmp	r3, #5
	bhi	.L485
	b	.L514
.L450:
	sub	r3, fp, #20
	sub	r3, r3, #944
	sub	r3, r3, #2
	ldr	r2, .L518+36
	strh	r2, [r3]	@ movhi
	ldr	r3, .L518+40
	str	r3, [fp, #-896]
	sub	r3, fp, #344
	add	r3, r3, #304
	str	r3, [fp, #-892]
	ldr	r3, .L518+44
	str	r3, [fp, #-888]
	mvn	r3, #1
	str	r3, [fp, #-884]
	ldr	r2, .L518+48
	sub	r3, fp, #632
	mov	r1, r2
	mov	r2, #128
	mov	r0, r3
	bl	memcpy
	mov	r3, #69
	strb	r3, [fp, #-974]
	mov	r3, #0
	str	r3, [fp, #-928]
	b	.L487
.L488:
	ldr	r3, [fp, #-928]
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	mvn	r2, #4
	str	r2, [r3, #-648]
	ldr	r3, [fp, #-928]
	add	r3, r3, #1
	str	r3, [fp, #-928]
.L487:
	ldr	r3, [fp, #-928]
	cmp	r3, #8
	ble	.L488
	mov	r0, #130
	bl	step_hash
	mov	r3, #0
	str	r3, [fp, #-940]
	b	.L489
.L511:
	mov	r3, #81
	strb	r3, [fp, #-973]
	ldr	r3, .L518+52
	str	r3, [fp, #-880]
	ldr	r3, .L518+56
	str	r3, [fp, #-876]
	ldr	r3, .L518+60
	str	r3, [fp, #-872]
	mvn	r3, #0
	str	r3, [fp, #-868]
	ldr	r3, .L518+64
	str	r3, [fp, #-864]
	mvn	r3, #1
	str	r3, [fp, #-860]
	ldr	r3, .L518+68
	str	r3, [fp, #-856]
	ldr	r3, .L518+72
	str	r3, [fp, #-852]
	ldr	r3, .L518+76
	str	r3, [fp, #-848]
	mov	r0, #85
	bl	step_hash
	ldr	r3, .L518+152
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	add	r3, r3, #1
	and	r2, r3, #255
	ldr	r3, .L518+152
	strb	r2, [r3, #4]
	mov	r0, #102
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r4, [r3]
	ldr	r3, .L518+80
	ldrsh	r3, [r3]
	mov	r6, r3
	ldr	r3, [fp, #-960]
	ldr	r3, [r3]
	and	r3, r3, #255
	lsl	r3, r3, #3
	mov	r2, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrh	r3, [r3]
	lsl	r3, r3, #4
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r3, r3, #5
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_uidiv
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrh	r3, [r3]
	asr	r5, r2, r3
	ldr	r3, .L518+152
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	mov	r7, r3
	ldr	r3, [fp, #-892]
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L518+80
	ldrsh	r3, [r3]
	cmp	r2, r3
	movle	r3, #1
	movgt	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	and	r3, r3, #255
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idivmod
	mov	r3, r1
	lsl	r3, r3, #24
	asr	r3, r3, #24
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r3, r3, #64
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	lsl	r3, r3, #16
	asr	r3, r3, #16
	lsl	r2, r7, r3
	ldr	r3, .L518+8
	ldr	r3, [r3]
	sub	r2, r2, r3
	sub	r3, fp, #20
	sub	r3, r3, #960
	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, .L518+4
	ldr	r3, [r3]
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	eor	r3, r3, r5
	cmp	r6, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	cmp	r4, r3
	blt	.L490
	mvn	r3, #118
	strb	r3, [fp, #-972]
	mov	r3, #1
	str	r3, [fp, #-844]
	mov	r0, #98
	bl	step_hash
	mov	r3, #7
	str	r3, [fp, #-896]
	ldr	r3, [fp, #-896]
	cmp	r3, #0
	blt	.L491
	mov	r3, #9
	str	r3, [fp, #-840]
	mov	r0, #96
	bl	step_hash
	ldr	r3, .L518+84
	mov	r2, #2
	strh	r2, [r3]	@ movhi
	b	.L492
.L519:
	.align	2
.L518:
	.word	.LC50
	.word	g_64
	.word	g_2
	.word	-647284557
	.word	-914496795
	.word	-1704886048
	.word	-15624
	.word	-1737231731
	.word	-1130466512
	.word	-21344
	.word	-1697144410
	.word	1544139250
	.word	.LC36
	.word	1250745592
	.word	1993863425
	.word	633714450
	.word	-1143385054
	.word	1813225362
	.word	498410155
	.word	583415277
	.word	g_173
	.word	g_73
	.word	19858
	.word	-1284849026
	.word	-841781729
	.word	-1878848398
	.word	2076708470
	.word	196687330
	.word	.LC37
	.word	1355057572
	.word	.LC38
	.word	.LC39
	.word	g_2
	.word	.LC40
	.word	g_214
	.word	g_215
	.word	g_174
	.word	g_145
	.word	g_178
	.word	g_64
	.word	.LC50
.L497:
	mov	r0, #93
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #0
	beq	.L493
	sub	r3, fp, #972
	ldrsb	r3, [r3]
	cmp	r3, #0
	beq	.L493
	mov	r3, #1
	b	.L494
.L493:
	mov	r3, #0
.L494:
	str	r3, [fp, #-844]
	mov	r0, #94
	bl	step_hash
	ldr	r3, [fp, #-952]
	ldr	r3, [r3]
	cmp	r3, #0
	bne	.L517
	mov	r0, #95
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	ldr	r2, .L518+152
	ldrb	r2, [r2, #1]	@ zero_extendqisi2
	mov	r1, r2
	mov	r2, #0
	mov	r0, r3
	bl	func_22
	mov	r1, r0
	ldr	r3, [fp, #-940]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-896]
	add	r3, r2, r3
	lsl	r3, r3, #2
	sub	r2, fp, #20
	add	r3, r2, r3
	str	r1, [r3, #-324]
	b	.L496
.L517:
	nop
.L496:
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	ldr	r2, .L518+84
	strh	r3, [r2]	@ movhi
.L492:
	ldr	r3, .L518+84
	ldrh	r3, [r3]
	cmp	r3, #7
	bls	.L497
	mov	r0, #97
	bl	step_hash
	ldr	r3, [fp, #-840]
	b	.L512
.L490:
	sub	r3, fp, #20
	sub	r3, r3, #944
	ldr	r2, .L518+88
	strh	r2, [r3]	@ movhi
	mov	r0, #100
	bl	step_hash
	ldr	r3, [fp, #-908]
	ldr	r2, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r1, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #944
	ldrh	r3, [r3]
	cmp	r1, r3
	movne	r3, #1
	moveq	r3, #0
	and	r3, r3, #255
	orr	r2, r2, r3
	ldr	r3, [fp, #-908]
	str	r2, [r3]
	mov	r0, #101
	bl	step_hash
	sub	r3, fp, #972
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	ldr	r2, .L518+92
	cmp	r3, r2
	bls	.L499
	ldr	r3, [fp, #-880]
	lsl	r3, r3, #24
	asr	r3, r3, #24
	mov	r2, r3
	b	.L500
.L499:
	mov	r2, #0
.L500:
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrh	r3, [r3]	@ movhi
	lsl	r3, r3, #24
	asr	r3, r3, #24
	asr	r3, r2, r3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, r3
	ldr	r3, .L518+148
	ldr	r3, [r3]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	sub	r2, r2, r3
	ldr	r3, [fp, #-908]
	str	r2, [r3]
.L491:
	mov	r0, #129
	bl	step_hash
	ldr	r3, .L518+148
	mov	r2, #1
	str	r2, [r3]
	b	.L501
.L510:
	ldr	r3, .L518+96
	str	r3, [fp, #-924]
	ldr	r3, .L518+100
	str	r3, [fp, #-836]
	mov	r3, #2
	str	r3, [fp, #-832]
	ldr	r3, .L518+104
	str	r3, [fp, #-828]
	mvn	r3, #0
	str	r3, [fp, #-824]
	ldr	r3, .L518+108
	str	r3, [fp, #-820]
	mvn	r3, #9
	str	r3, [fp, #-816]
	ldr	r2, .L518+112
	sub	r3, fp, #504
	mov	r1, r2
	mov	r2, #160
	mov	r0, r3
	bl	memcpy
	mov	r0, #111
	bl	step_hash
	ldr	r3, .L518+156
	mov	r2, #7
	str	r2, [r3]
	b	.L502
.L503:
	mov	r3, #1
	str	r3, [fp, #-796]
	mov	r0, #109
	bl	step_hash
	sub	r3, fp, #972
	sub	r3, r3, #1
	ldrsb	r3, [r3]
	str	r3, [fp, #-796]
	mov	r0, #110
	bl	step_hash
	ldr	r3, [fp, #-956]
	ldr	r1, [r3]
	sub	r3, fp, #20
	sub	r3, r3, #960
	sub	r3, r3, #2
	ldrsh	r2, [r3]
	ldr	r3, [fp, #-956]
	and	r2, r2, r1
	str	r2, [r3]
	ldr	r3, .L518+156
	ldr	r3, [r3]
	sub	r3, r3, #1
	ldr	r2, .L518+156
	str	r3, [r2]
.L502:
	ldr	r3, .L518+156
	ldr	r3, [r3]
	cmp	r3, #1
	bgt	.L503
	mov	r0, #128
	bl	step_hash
	sub	r3, fp, #20
	sub	r3, r3, #944
	sub	r3, r3, #2
	mov	r2, #2
	strh	r2, [r3]	@ movhi
	b	.L504
.L509:
	ldr	r3, .L518+116
	str	r3, [fp, #-812]
	mov	r3, #2
	str	r3, [fp, #-808]
	ldr	r3, .L518+120
	sub	ip, fp, #752
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1}
	stm	ip, {r0, r1}
	mvn	r3, #0
	str	r3, [fp, #-804]
	ldr	r3, .L518+124
	sub	ip, fp, #728
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2}
	stm	ip, {r0, r1, r2}
	mov	r0, #119
	bl	step_hash
	ldr	r3, .L518+144
	mov	r2, #0
	strh	r2, [r3]	@ movhi
	b	.L505
.L506:
	mov	r0, #118
	bl	step_hash
	ldr	r3, [fp, #-916]
	ldr	r4, [r3]
	ldr	r3, .L518+144
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L518+144
	ldrsh	r3, [r3]
	add	r2, r3, #1
	ldr	r1, .L518+152
	mov	r3, r0
	lsl	r3, r3, #2
	add	r3, r3, r0
	add	r3, r1, r3
	add	r3, r3, r2
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r2, r3
	ldr	r3, .L518+152
	ldrb	r3, [r3, #13]	@ zero_extendqisi2
	cmp	r3, #0
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	cmp	r2, r3
	moveq	r3, #1
	movne	r3, #0
	and	r3, r3, #255
	mov	r2, r3
	ldr	r3, .L518+128
	ldr	r3, [r3]
	mov	r1, r3
	mov	r0, r2
	bl	__aeabi_idiv
	mov	r3, r0
	and	r2, r4, r3
	ldr	r3, [fp, #-916]
	str	r2, [r3]
	ldr	r3, .L518+144
	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, .L518+144
	strh	r3, [r2]	@ movhi
.L505:
	ldr	r3, .L518+144
	ldrsh	r3, [r3]
	cmp	r3, #3
	ble	.L506
	mov	r0, #120
	bl	step_hash
	ldr	r3, [fp, #-924]
	sub	r3, r3, #1
	str	r3, [fp, #-924]
	mov	r0, #126
	bl	step_hash
	ldr	r3, .L518+144
	mov	r2, #2
	strh	r2, [r3]	@ movhi
	b	.L507
.L508:
	mov	r3, #8
	str	r3, [fp, #-800]
	ldr	r3, .L518+132
	sub	ip, fp, #700
	mov	lr, r3
	ldmia	lr!, {r0, r1, r2, r3}
	stmia	ip!, {r0, r1, r2, r3}
	ldm	lr, {r0, r1, r2, r3}
	stm	ip, {r0, r1, r2, r3}
	mov	r0, #124
	bl	step_hash
	ldr	r3, .L518+144
	ldrsh	r3, [r3]
	mov	r1, r3
	ldr	r3, .L518+136
	ldr	r2, [r3]
	ldr	r0, .L518+140
	mov	r3, r1
	lsl	r3, r3, #2
	add	r3, r3, r1
	lsl	r3, r3, #1
	ldr	r1, [fp, #-940]
	add	r3, r3, r1
	ldr	r3, [r0, r3, lsl #2]
	str	r3, [r2]
	mov	r0, #125
	bl	step_hash
	ldrb	r3, [fp, #-974]
	sub	r3, r3, #1
	strb	r3, [fp, #-974]
	ldr	r3, .L518+144
	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, .L518+144
	strh	r3, [r2]	@ movhi
.L507:
	ldr	r3, .L518+144
	ldrsh	r3, [r3]
	cmp	r3, #0
	bge	.L508
	mov	r0, #127
	bl	step_hash
	sub	r3, fp, #956
	str	r3, [fp, #-904]
	sub	r3, fp, #20
	sub	r3, r3, #944
	sub	r3, r3, #2
	ldrh	r3, [r3]
	add	r3, r3, #1
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	sub	r3, fp, #20
	sub	r3, r3, #944
	sub	r3, r3, #2
	strh	r2, [r3]	@ movhi
.L504:
	sub	r3, fp, #20
	sub	r3, r3, #944
	sub	r3, r3, #2
	ldrsh	r3, [r3]
	cmp	r3, #7
	ble	.L509
	ldr	r3, .L518+148
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L518+148
	str	r3, [r2]
.L501:
	ldr	r3, .L518+148
	ldr	r3, [r3]
	cmp	r3, #7
	bls	.L510
	ldr	r3, [fp, #-940]
	add	r3, r3, #1
	str	r3, [fp, #-940]
.L489:
	ldr	r3, [fp, #-940]
	cmp	r3, #7
	bls	.L511
	mov	r0, #131
	bl	step_hash
	ldr	r3, [fp, #-636]
	sub	r3, r3, #1
	str	r3, [fp, #-636]
	mov	r0, #132
	bl	step_hash
	ldr	r3, .L518+152
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	b	.L512
.L514:
	mov	r0, #134
	bl	step_hash
	ldr	r3, [fp, #-900]
	add	r3, r3, #1
	str	r3, [fp, #-900]
	mov	r0, #135
	bl	step_hash
	ldr	r3, .L518+156
	ldr	r3, [r3]
.L512:
	ldr	r2, .L518+160
	ldr	r1, [r2]
	ldr	r2, [fp, #-24]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L513
	bl	__stack_chk_fail
.L513:
	mov	r0, r3
	sub	sp, fp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, fp, pc}
	.size	func_59, .-func_59
	.section	.rodata
	.align	2
.LC51:
	.ascii	"g_2\000"
	.align	2
.LC52:
	.ascii	"g_64\000"
	.align	2
.LC53:
	.ascii	"g_73\000"
	.align	2
.LC54:
	.ascii	"g_145\000"
	.align	2
.LC55:
	.ascii	"g_173[i]\000"
	.align	2
.LC56:
	.ascii	"index = [%d]\012\000"
	.align	2
.LC57:
	.ascii	"g_174\000"
	.align	2
.LC58:
	.ascii	"g_178[i][j]\000"
	.align	2
.LC59:
	.ascii	"index = [%d][%d]\012\000"
	.align	2
.LC60:
	.ascii	"g_319\000"
	.align	2
.LC61:
	.ascii	"g_363\000"
	.align	2
.LC62:
	.ascii	"g_578\000"
	.align	2
.LC63:
	.ascii	"g_627\000"
	.align	2
.LC64:
	.ascii	"g_670\000"
	.align	2
.LC65:
	.ascii	"g_681[i][j]\000"
	.align	2
.LC66:
	.ascii	"g_760\000"
	.align	2
.LC67:
	.ascii	"g_876\000"
	.align	2
.LC68:
	.ascii	"g_891[i]\000"
	.align	2
.LC69:
	.ascii	"g_1001\000"
	.align	2
.LC70:
	.ascii	"g_1077\000"
	.align	2
.LC71:
	.ascii	"g_1156\000"
	.align	2
.LC72:
	.ascii	"g_1229\000"
	.align	2
.LC73:
	.ascii	"g_1296[i][j]\000"
	.align	2
.LC74:
	.ascii	"g_1380\000"
	.align	2
.LC75:
	.ascii	"g_1491\000"
	.align	2
.LC76:
	.ascii	"g_1519\000"
	.align	2
.LC77:
	.ascii	"g_1520[i]\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 = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	ldr	r3, .L545
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+8
	bl	transparent_crc
	ldr	r3, .L545+12
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+16
	bl	transparent_crc
	ldr	r3, .L545+20
	ldrh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+24
	bl	transparent_crc
	ldr	r3, .L545+28
	ldr	r3, [r3]
	ldr	r2, .L545+4
	ldr	r2, [r2]
	ldr	r1, .L545+32
	mov	r0, r3
	bl	transparent_crc
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L521
.L523:
	ldr	r2, .L545+36
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #1
	add	r3, r2, r3
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+40
	bl	transparent_crc
	ldr	r3, .L545+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L522
	ldr	r1, [fp, #-12]
	ldr	r0, .L545+44
	bl	printf
.L522:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L521:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L523
	ldr	r3, .L545+48
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+52
	bl	transparent_crc
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L524
.L528:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L525
.L527:
	ldr	r1, .L545+56
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	add	r2, r1, r3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+60
	bl	transparent_crc
	ldr	r3, .L545+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L526
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-12]
	ldr	r0, .L545+64
	bl	printf
.L526:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L525:
	ldr	r3, [fp, #-8]
	cmp	r3, #4
	ble	.L527
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L524:
	ldr	r3, [fp, #-12]
	cmp	r3, #3
	ble	.L528
	ldr	r3, .L545+68
	ldrsb	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+72
	bl	transparent_crc
	ldr	r3, .L545+76
	ldr	r3, [r3]
	ldr	r2, .L545+4
	ldr	r2, [r2]
	ldr	r1, .L545+80
	mov	r0, r3
	bl	transparent_crc
	ldr	r3, .L545+84
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+88
	bl	transparent_crc
	ldr	r3, .L545+92
	ldrh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+96
	bl	transparent_crc
	ldr	r3, .L545+100
	ldrsh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+104
	bl	transparent_crc
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L529
.L533:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L530
.L532:
	ldr	r1, .L545+108
	ldr	r3, [fp, #-12]
	lsl	r2, r3, #3
	ldr	r3, [fp, #-8]
	add	r3, r2, r3
	ldr	r3, [r1, r3, lsl #2]
	ldr	r2, .L545+4
	ldr	r2, [r2]
	ldr	r1, .L545+112
	mov	r0, r3
	bl	transparent_crc
	ldr	r3, .L545+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L531
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-12]
	ldr	r0, .L545+64
	bl	printf
.L531:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L530:
	ldr	r3, [fp, #-8]
	cmp	r3, #7
	ble	.L532
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L529:
	ldr	r3, [fp, #-12]
	cmp	r3, #4
	ble	.L533
	ldr	r3, .L545+116
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+120
	bl	transparent_crc
	ldr	r3, .L545+124
	ldrb	r3, [r3]	@ zero_extendqisi2
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+128
	bl	transparent_crc
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L534
.L536:
	ldr	r2, .L545+132
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	ldr	r2, .L545+4
	ldr	r2, [r2]
	ldr	r1, .L545+136
	mov	r0, r3
	bl	transparent_crc
	ldr	r3, .L545+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L535
	ldr	r1, [fp, #-12]
	ldr	r0, .L545+44
	bl	printf
.L535:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L534:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	ble	.L536
	ldr	r3, .L545+140
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+144
	bl	transparent_crc
	ldr	r3, .L545+148
	ldrh	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+152
	bl	transparent_crc
	ldr	r3, .L545+156
	ldrsb	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+160
	bl	transparent_crc
	ldr	r3, .L545+164
	ldrsb	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+168
	bl	transparent_crc
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L537
.L541:
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L538
.L540:
	ldr	r1, .L545+172
	ldr	r2, [fp, #-12]
	mov	r3, r2
	lsl	r3, r3, #2
	add	r3, r3, r2
	lsl	r3, r3, #1
	ldr	r2, [fp, #-8]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	ldr	r2, .L545+4
	ldr	r2, [r2]
	ldr	r1, .L545+176
	mov	r0, r3
	bl	transparent_crc
	ldr	r3, .L545+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L539
	ldr	r2, [fp, #-8]
	ldr	r1, [fp, #-12]
	ldr	r0, .L545+64
	bl	printf
.L539:
	ldr	r3, [fp, #-8]
	add	r3, r3, #1
	str	r3, [fp, #-8]
.L538:
	ldr	r3, [fp, #-8]
	cmp	r3, #9
	ble	.L540
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L537:
	ldr	r3, [fp, #-12]
	cmp	r3, #7
	ble	.L541
	ldr	r3, .L545+180
	ldr	r3, [r3]
	ldr	r2, .L545+4
	ldr	r2, [r2]
	ldr	r1, .L545+184
	mov	r0, r3
	bl	transparent_crc
	ldr	r3, .L545+188
	ldr	r3, [r3]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+192
	bl	transparent_crc
	ldr	r3, .L545+196
	ldr	r3, [r3]
	ldr	r2, .L545+4
	ldr	r2, [r2]
	ldr	r1, .L545+200
	mov	r0, r3
	bl	transparent_crc
	mov	r3, #0
	str	r3, [fp, #-12]
	b	.L542
.L544:
	ldr	r2, .L545+204
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	mov	r0, r3
	ldr	r3, .L545+4
	ldr	r3, [r3]
	mov	r2, r3
	ldr	r1, .L545+208
	bl	transparent_crc
	ldr	r3, .L545+4
	ldr	r3, [r3]
	cmp	r3, #0
	beq	.L543
	ldr	r1, [fp, #-12]
	ldr	r0, .L545+44
	bl	printf
.L543:
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L542:
	ldr	r3, [fp, #-12]
	cmp	r3, #5
	ble	.L544
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L546:
	.align	2
.L545:
	.word	g_2
	.word	print_hash_value
	.word	.LC51
	.word	g_64
	.word	.LC52
	.word	g_73
	.word	.LC53
	.word	g_145
	.word	.LC54
	.word	g_173
	.word	.LC55
	.word	.LC56
	.word	g_174
	.word	.LC57
	.word	g_178
	.word	.LC58
	.word	.LC59
	.word	g_319
	.word	.LC60
	.word	g_363
	.word	.LC61
	.word	g_578
	.word	.LC62
	.word	g_627
	.word	.LC63
	.word	g_670
	.word	.LC64
	.word	g_681
	.word	.LC65
	.word	g_760
	.word	.LC66
	.word	g_876
	.word	.LC67
	.word	g_891
	.word	.LC68
	.word	g_1001
	.word	.LC69
	.word	g_1077
	.word	.LC70
	.word	g_1156
	.word	.LC71
	.word	g_1229
	.word	.LC72
	.word	g_1296
	.word	.LC73
	.word	g_1380
	.word	.LC74
	.word	g_1491
	.word	.LC75
	.word	g_1519
	.word	.LC76
	.word	g_1520
	.word	.LC77
	.size	csmith_compute_hash, .-csmith_compute_hash
	.section	.rodata
	.align	2
.LC78:
	.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, .L550
	ldr	r3, [r3]
	mvn	r3, r3
	mov	r2, r3
	ldr	r1, [fp, #-16]
	ldr	r0, .L550+4
	bl	printf
	ldr	r3, .L550
	mvn	r2, #0
	str	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-8]
	b	.L548
.L549:
	ldr	r2, .L550+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]
.L548:
	ldr	r3, [fp, #-8]
	cmp	r3, #255
	ble	.L549
	bl	crc32_gentab
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L551:
	.align	2
.L550:
	.word	crc32_context
	.word	.LC78
	.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, .L554
	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}
.L555:
	.align	2
.L554:
	.word	crc32_context
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
