40f76a:	5d                   	pop    %ebp
40f76b:	c3                   	ret
40f76c:	8b ff                	mov    %edi,%edi
40f76e:	55                   	push   %ebp
40f76f:	8b ec                	mov    %esp,%ebp
40f771:	a1 64 45 43 00       	mov    0x434564,%eax
40f776:	56                   	push   %esi
40f777:	57                   	push   %edi
40f778:	83 f8 05             	cmp    $0x5,%eax
40f77b:	7c 7a                	jl     0x40f7f7
40f77d:	8b 75 08             	mov    0x8(%ebp),%esi
40f780:	8b d6                	mov    %esi,%edx
40f782:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f785:	83 e2 1f             	and    $0x1f,%edx
40f788:	6a 20                	push   $0x20
40f78a:	58                   	pop    %eax
40f78b:	2b c2                	sub    %edx,%eax
40f78d:	f7 da                	neg    %edx
40f78f:	1b d2                	sbb    %edx,%edx
40f791:	23 d0                	and    %eax,%edx
40f793:	3b fa                	cmp    %edx,%edi
40f795:	73 02                	jae    0x40f799
40f797:	8b d7                	mov    %edi,%edx
40f799:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
40f79c:	8b c6                	mov    %esi,%eax
40f79e:	3b f1                	cmp    %ecx,%esi
40f7a0:	74 0a                	je     0x40f7ac
40f7a2:	80 38 00             	cmpb   $0x0,(%eax)
40f7a5:	74 05                	je     0x40f7ac
40f7a7:	40                   	inc    %eax
40f7a8:	3b c1                	cmp    %ecx,%eax
40f7aa:	75 f6                	jne    0x40f7a2
40f7ac:	8b c8                	mov    %eax,%ecx
40f7ae:	2b ce                	sub    %esi,%ecx
40f7b0:	3b ca                	cmp    %edx,%ecx
40f7b2:	0f 85 d0 00 00 00    	jne    0x40f888
40f7b8:	2b fa                	sub    %edx,%edi
40f7ba:	8b c8                	mov    %eax,%ecx
40f7bc:	83 e7 e0             	and    $0xffffffe0,%edi
40f7bf:	03 f8                	add    %eax,%edi
40f7c1:	c5 f1 ef c9          	vpxor  %xmm1,%xmm1,%xmm1
40f7c5:	3b c7                	cmp    %edi,%eax
40f7c7:	74 13                	je     0x40f7dc
40f7c9:	c5 f5 74 01          	vpcmpeqb (%ecx),%ymm1,%ymm0
40f7cd:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
40f7d1:	85 c0                	test   %eax,%eax
40f7d3:	75 07                	jne    0x40f7dc
40f7d5:	83 c1 20             	add    $0x20,%ecx
40f7d8:	3b cf                	cmp    %edi,%ecx
40f7da:	75 ed                	jne    0x40f7c9
40f7dc:	8b 45 0c             	mov    0xc(%ebp),%eax
40f7df:	03 c6                	add    %esi,%eax
40f7e1:	eb 06                	jmp    0x40f7e9
40f7e3:	80 39 00             	cmpb   $0x0,(%ecx)
40f7e6:	74 05                	je     0x40f7ed
40f7e8:	41                   	inc    %ecx
40f7e9:	3b c8                	cmp    %eax,%ecx
40f7eb:	75 f6                	jne    0x40f7e3
40f7ed:	2b ce                	sub    %esi,%ecx
40f7ef:	c5 f8 77             	vzeroupper
40f7f2:	e9 91 00 00 00       	jmp    0x40f888
40f7f7:	83 f8 01             	cmp    $0x1,%eax
40f7fa:	7c 72                	jl     0x40f86e
40f7fc:	8b 75 08             	mov    0x8(%ebp),%esi
40f7ff:	8b d6                	mov    %esi,%edx
40f801:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f804:	83 e2 0f             	and    $0xf,%edx
40f807:	6a 10                	push   $0x10
40f809:	58                   	pop    %eax
40f80a:	2b c2                	sub    %edx,%eax
40f80c:	f7 da                	neg    %edx
40f80e:	1b d2                	sbb    %edx,%edx
40f810:	23 d0                	and    %eax,%edx
40f812:	3b fa                	cmp    %edx,%edi
40f814:	73 02                	jae    0x40f818
40f816:	8b d7                	mov    %edi,%edx
40f818:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
40f81b:	8b c6                	mov    %esi,%eax
40f81d:	3b f1                	cmp    %ecx,%esi
40f81f:	74 0a                	je     0x40f82b
40f821:	80 38 00             	cmpb   $0x0,(%eax)
40f824:	74 05                	je     0x40f82b
40f826:	40                   	inc    %eax
40f827:	3b c1                	cmp    %ecx,%eax
40f829:	75 f6                	jne    0x40f821
40f82b:	8b c8                	mov    %eax,%ecx
40f82d:	2b ce                	sub    %esi,%ecx
40f82f:	3b ca                	cmp    %edx,%ecx
40f831:	75 55                	jne    0x40f888
40f833:	2b fa                	sub    %edx,%edi
40f835:	8b c8                	mov    %eax,%ecx
40f837:	83 e7 f0             	and    $0xfffffff0,%edi
40f83a:	0f 57 c9             	xorps  %xmm1,%xmm1
40f83d:	03 f8                	add    %eax,%edi
40f83f:	3b c7                	cmp    %edi,%eax
40f841:	74 16                	je     0x40f859
40f843:	0f 10 01             	movups (%ecx),%xmm0
40f846:	66 0f 74 c1          	pcmpeqb %xmm1,%xmm0
40f84a:	66 0f d7 c0          	pmovmskb %xmm0,%eax
40f84e:	85 c0                	test   %eax,%eax
40f850:	75 07                	jne    0x40f859
40f852:	83 c1 10             	add    $0x10,%ecx
40f855:	3b cf                	cmp    %edi,%ecx
40f857:	75 ea                	jne    0x40f843
40f859:	8b 45 0c             	mov    0xc(%ebp),%eax
40f85c:	03 c6                	add    %esi,%eax
40f85e:	eb 06                	jmp    0x40f866
40f860:	80 39 00             	cmpb   $0x0,(%ecx)
40f863:	74 05                	je     0x40f86a
40f865:	41                   	inc    %ecx
40f866:	3b c8                	cmp    %eax,%ecx
40f868:	75 f6                	jne    0x40f860
40f86a:	2b ce                	sub    %esi,%ecx
40f86c:	eb 1a                	jmp    0x40f888
40f86e:	8b 55 08             	mov    0x8(%ebp),%edx
40f871:	8b ca                	mov    %edx,%ecx
40f873:	8b 45 0c             	mov    0xc(%ebp),%eax
40f876:	03 c2                	add    %edx,%eax
40f878:	3b d0                	cmp    %eax,%edx
40f87a:	74 0a                	je     0x40f886
40f87c:	80 39 00             	cmpb   $0x0,(%ecx)
40f87f:	74 05                	je     0x40f886
40f881:	41                   	inc    %ecx
40f882:	3b c8                	cmp    %eax,%ecx
40f884:	75 f6                	jne    0x40f87c
40f886:	2b ca                	sub    %edx,%ecx
40f888:	5f                   	pop    %edi
40f889:	8b c1                	mov    %ecx,%eax
40f88b:	5e                   	pop    %esi
40f88c:	5d                   	pop    %ebp
40f88d:	c3                   	ret
40f88e:	8b ff                	mov    %edi,%edi
40f890:	55                   	push   %ebp
40f891:	8b ec                	mov    %esp,%ebp
40f893:	a1 64 45 43 00       	mov    0x434564,%eax
40f898:	56                   	push   %esi
40f899:	57                   	push   %edi
40f89a:	83 f8 05             	cmp    $0x5,%eax
40f89d:	0f 8c b7 00 00 00    	jl     0x40f95a
40f8a3:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f8a6:	f6 c1 01             	test   $0x1,%cl
40f8a9:	74 21                	je     0x40f8cc
40f8ab:	8b 45 0c             	mov    0xc(%ebp),%eax
40f8ae:	8b f1                	mov    %ecx,%esi
40f8b0:	8d 14 41             	lea    (%ecx,%eax,2),%edx
40f8b3:	3b f2                	cmp    %edx,%esi
40f8b5:	74 0e                	je     0x40f8c5
40f8b7:	33 c0                	xor    %eax,%eax
40f8b9:	66 39 01             	cmp    %ax,(%ecx)
40f8bc:	74 07                	je     0x40f8c5
40f8be:	83 c1 02             	add    $0x2,%ecx
40f8c1:	3b ca                	cmp    %edx,%ecx
40f8c3:	75 f4                	jne    0x40f8b9
40f8c5:	2b ce                	sub    %esi,%ecx
40f8c7:	e9 6a 01 00 00       	jmp    0x40fa36
40f8cc:	8b d1                	mov    %ecx,%edx
40f8ce:	83 e2 1f             	and    $0x1f,%edx
40f8d1:	6a 20                	push   $0x20
40f8d3:	58                   	pop    %eax
40f8d4:	2b c2                	sub    %edx,%eax
40f8d6:	f7 da                	neg    %edx
40f8d8:	1b d2                	sbb    %edx,%edx
40f8da:	23 d0                	and    %eax,%edx
40f8dc:	8b 45 0c             	mov    0xc(%ebp),%eax
40f8df:	d1 ea                	shr    $1,%edx
40f8e1:	3b c2                	cmp    %edx,%eax
40f8e3:	73 02                	jae    0x40f8e7
40f8e5:	8b d0                	mov    %eax,%edx
40f8e7:	8b 75 08             	mov    0x8(%ebp),%esi
40f8ea:	8d 3c 51             	lea    (%ecx,%edx,2),%edi
40f8ed:	33 c0                	xor    %eax,%eax
40f8ef:	3b f7                	cmp    %edi,%esi
40f8f1:	74 0c                	je     0x40f8ff
40f8f3:	66 39 01             	cmp    %ax,(%ecx)
40f8f6:	74 07                	je     0x40f8ff
40f8f8:	83 c1 02             	add    $0x2,%ecx
40f8fb:	3b cf                	cmp    %edi,%ecx
40f8fd:	75 f4                	jne    0x40f8f3
40f8ff:	2b ce                	sub    %esi,%ecx
40f901:	d1 f9                	sar    $1,%ecx
40f903:	3b ca                	cmp    %edx,%ecx
40f905:	0f 85 2d 01 00 00    	jne    0x40fa38
40f90b:	8b 45 0c             	mov    0xc(%ebp),%eax
40f90e:	8d 3c 4e             	lea    (%esi,%ecx,2),%edi
40f911:	2b c2                	sub    %edx,%eax
40f913:	83 e0 e0             	and    $0xffffffe0,%eax
40f916:	03 c1                	add    %ecx,%eax
40f918:	c5 f1 ef c9          	vpxor  %xmm1,%xmm1,%xmm1
40f91c:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40f91f:	eb 0f                	jmp    0x40f930
40f921:	c5 f5 75 07          	vpcmpeqw (%edi),%ymm1,%ymm0
40f925:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
40f929:	85 c0                	test   %eax,%eax
40f92b:	75 07                	jne    0x40f934
40f92d:	83 c7 20             	add    $0x20,%edi
40f930:	3b f9                	cmp    %ecx,%edi
40f932:	75 ed                	jne    0x40f921
40f934:	8b 45 0c             	mov    0xc(%ebp),%eax
40f937:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40f93a:	3b f9                	cmp    %ecx,%edi
40f93c:	74 0e                	je     0x40f94c
40f93e:	33 c0                	xor    %eax,%eax
40f940:	66 39 07             	cmp    %ax,(%edi)
40f943:	74 07                	je     0x40f94c
40f945:	83 c7 02             	add    $0x2,%edi
40f948:	3b f9                	cmp    %ecx,%edi
40f94a:	75 f4                	jne    0x40f940
40f94c:	8b cf                	mov    %edi,%ecx
40f94e:	2b ce                	sub    %esi,%ecx
40f950:	d1 f9                	sar    $1,%ecx
40f952:	c5 f8 77             	vzeroupper
40f955:	e9 de 00 00 00       	jmp    0x40fa38
40f95a:	83 f8 01             	cmp    $0x1,%eax
40f95d:	0f 8c b4 00 00 00    	jl     0x40fa17
40f963:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f966:	f6 c1 01             	test   $0x1,%cl
40f969:	74 27                	je     0x40f992
40f96b:	8b 45 0c             	mov    0xc(%ebp),%eax
40f96e:	8b f1                	mov    %ecx,%esi
40f970:	8d 14 41             	lea    (%ecx,%eax,2),%edx
40f973:	3b f2                	cmp    %edx,%esi
40f975:	0f 84 4a ff ff ff    	je     0x40f8c5
40f97b:	33 c0                	xor    %eax,%eax
40f97d:	66 39 01             	cmp    %ax,(%ecx)
40f980:	0f 84 3f ff ff ff    	je     0x40f8c5
40f986:	83 c1 02             	add    $0x2,%ecx
40f989:	3b ca                	cmp    %edx,%ecx
40f98b:	75 f0                	jne    0x40f97d
40f98d:	e9 33 ff ff ff       	jmp    0x40f8c5
40f992:	8b d1                	mov    %ecx,%edx
40f994:	83 e2 0f             	and    $0xf,%edx
40f997:	6a 10                	push   $0x10
40f999:	58                   	pop    %eax
40f99a:	2b c2                	sub    %edx,%eax
40f99c:	f7 da                	neg    %edx
40f99e:	1b d2                	sbb    %edx,%edx
40f9a0:	23 d0                	and    %eax,%edx
40f9a2:	8b 45 0c             	mov    0xc(%ebp),%eax
40f9a5:	d1 ea                	shr    $1,%edx
40f9a7:	3b c2                	cmp    %edx,%eax
40f9a9:	73 02                	jae    0x40f9ad
40f9ab:	8b d0                	mov    %eax,%edx
40f9ad:	8b 75 08             	mov    0x8(%ebp),%esi
40f9b0:	8d 3c 51             	lea    (%ecx,%edx,2),%edi
40f9b3:	33 c0                	xor    %eax,%eax
40f9b5:	3b f7                	cmp    %edi,%esi
40f9b7:	74 0c                	je     0x40f9c5
40f9b9:	66 39 01             	cmp    %ax,(%ecx)
40f9bc:	74 07                	je     0x40f9c5
40f9be:	83 c1 02             	add    $0x2,%ecx
40f9c1:	3b cf                	cmp    %edi,%ecx
40f9c3:	75 f4                	jne    0x40f9b9
40f9c5:	2b ce                	sub    %esi,%ecx
40f9c7:	d1 f9                	sar    $1,%ecx
40f9c9:	3b ca                	cmp    %edx,%ecx
40f9cb:	75 6b                	jne    0x40fa38
40f9cd:	8b 45 0c             	mov    0xc(%ebp),%eax
40f9d0:	8d 3c 4e             	lea    (%esi,%ecx,2),%edi
40f9d3:	2b c2                	sub    %edx,%eax
40f9d5:	0f 57 c9             	xorps  %xmm1,%xmm1
40f9d8:	83 e0 f0             	and    $0xfffffff0,%eax
40f9db:	03 c1                	add    %ecx,%eax
40f9dd:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40f9e0:	eb 12                	jmp    0x40f9f4
40f9e2:	0f 10 07             	movups (%edi),%xmm0
40f9e5:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
40f9e9:	66 0f d7 c0          	pmovmskb %xmm0,%eax
40f9ed:	85 c0                	test   %eax,%eax
40f9ef:	75 07                	jne    0x40f9f8
40f9f1:	83 c7 10             	add    $0x10,%edi
40f9f4:	3b f9                	cmp    %ecx,%edi
40f9f6:	75 ea                	jne    0x40f9e2
40f9f8:	8b 45 0c             	mov    0xc(%ebp),%eax
40f9fb:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
40f9fe:	3b f9                	cmp    %ecx,%edi
40fa00:	74 0e                	je     0x40fa10
40fa02:	33 c0                	xor    %eax,%eax
40fa04:	66 39 07             	cmp    %ax,(%edi)
40fa07:	74 07                	je     0x40fa10
40fa09:	83 c7 02             	add    $0x2,%edi
40fa0c:	3b f9                	cmp    %ecx,%edi
40fa0e:	75 f4                	jne    0x40fa04
40fa10:	8b cf                	mov    %edi,%ecx
40fa12:	e9 ae fe ff ff       	jmp    0x40f8c5
40fa17:	8b 55 08             	mov    0x8(%ebp),%edx
40fa1a:	8b ca                	mov    %edx,%ecx
40fa1c:	8b 45 0c             	mov    0xc(%ebp),%eax
40fa1f:	8d 34 42             	lea    (%edx,%eax,2),%esi
40fa22:	3b d6                	cmp    %esi,%edx
40fa24:	74 0e                	je     0x40fa34
40fa26:	33 c0                	xor    %eax,%eax
40fa28:	66 39 01             	cmp    %ax,(%ecx)
40fa2b:	74 07                	je     0x40fa34
40fa2d:	83 c1 02             	add    $0x2,%ecx
40fa30:	3b ce                	cmp    %esi,%ecx
40fa32:	75 f4                	jne    0x40fa28
40fa34:	2b ca                	sub    %edx,%ecx
40fa36:	d1 f9                	sar    $1,%ecx
40fa38:	5f                   	pop    %edi
40fa39:	8b c1                	mov    %ecx,%eax
40fa3b:	5e                   	pop    %esi
40fa3c:	5d                   	pop    %ebp
40fa3d:	c3                   	ret
40fa3e:	8b ff                	mov    %edi,%edi
40fa40:	55                   	push   %ebp
40fa41:	8b ec                	mov    %esp,%ebp
40fa43:	8b 45 08             	mov    0x8(%ebp),%eax
40fa46:	a3 84 47 43 00       	mov    %eax,0x434784
40fa4b:	5d                   	pop    %ebp
40fa4c:	c3                   	ret
40fa4d:	8b ff                	mov    %edi,%edi
40fa4f:	55                   	push   %ebp
40fa50:	8b ec                	mov    %esp,%ebp
40fa52:	56                   	push   %esi
40fa53:	e8 22 00 00 00       	call   0x40fa7a
40fa58:	8b f0                	mov    %eax,%esi
40fa5a:	85 f6                	test   %esi,%esi
40fa5c:	74 17                	je     0x40fa75
40fa5e:	ff 75 08             	push   0x8(%ebp)
40fa61:	8b ce                	mov    %esi,%ecx
40fa63:	ff 15 54 41 42 00    	call   *0x424154
40fa69:	ff d6                	call   *%esi
40fa6b:	59                   	pop    %ecx
40fa6c:	85 c0                	test   %eax,%eax
40fa6e:	74 05                	je     0x40fa75
40fa70:	33 c0                	xor    %eax,%eax
40fa72:	40                   	inc    %eax
40fa73:	eb 02                	jmp    0x40fa77
40fa75:	33 c0                	xor    %eax,%eax
40fa77:	5e                   	pop    %esi
40fa78:	5d                   	pop    %ebp
40fa79:	c3                   	ret
40fa7a:	6a 0c                	push   $0xc
40fa7c:	68 38 16 43 00       	push   $0x431638
40fa81:	e8 3a 85 ff ff       	call   0x407fc0
40fa86:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40fa8a:	6a 00                	push   $0x0
40fa8c:	e8 92 d6 ff ff       	call   0x40d123
40fa91:	59                   	pop    %ecx
40fa92:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40fa96:	8b 35 14 30 43 00    	mov    0x433014,%esi
40fa9c:	8b ce                	mov    %esi,%ecx
40fa9e:	83 e1 1f             	and    $0x1f,%ecx
40faa1:	33 35 84 47 43 00    	xor    0x434784,%esi
40faa7:	d3 ce                	ror    %cl,%esi
40faa9:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40faac:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40fab3:	e8 15 00 00 00       	call   0x40facd
40fab8:	8b c6                	mov    %esi,%eax
40faba:	8b 4d f0             	mov    -0x10(%ebp),%ecx