41c72c:	73 02                	jae    0x41c730
41c72e:	8b d7                	mov    %edi,%edx
41c730:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
41c733:	8b c6                	mov    %esi,%eax
41c735:	3b f1                	cmp    %ecx,%esi
41c737:	74 0a                	je     0x41c743
41c739:	80 38 00             	cmpb   $0x0,(%eax)
41c73c:	74 05                	je     0x41c743
41c73e:	40                   	inc    %eax
41c73f:	3b c1                	cmp    %ecx,%eax
41c741:	75 f6                	jne    0x41c739
41c743:	8b c8                	mov    %eax,%ecx
41c745:	2b ce                	sub    %esi,%ecx
41c747:	3b ca                	cmp    %edx,%ecx
41c749:	75 55                	jne    0x41c7a0
41c74b:	2b fa                	sub    %edx,%edi
41c74d:	8b c8                	mov    %eax,%ecx
41c74f:	83 e7 f0             	and    $0xfffffff0,%edi
41c752:	0f 57 c9             	xorps  %xmm1,%xmm1
41c755:	03 f8                	add    %eax,%edi
41c757:	3b c7                	cmp    %edi,%eax
41c759:	74 16                	je     0x41c771
41c75b:	0f 28 c1             	movaps %xmm1,%xmm0
41c75e:	66 0f 74 01          	pcmpeqb (%ecx),%xmm0
41c762:	66 0f d7 c0          	pmovmskb %xmm0,%eax
41c766:	85 c0                	test   %eax,%eax
41c768:	75 07                	jne    0x41c771
41c76a:	83 c1 10             	add    $0x10,%ecx
41c76d:	3b cf                	cmp    %edi,%ecx
41c76f:	75 ea                	jne    0x41c75b
41c771:	8b 45 0c             	mov    0xc(%ebp),%eax
41c774:	03 c6                	add    %esi,%eax
41c776:	eb 06                	jmp    0x41c77e
41c778:	80 39 00             	cmpb   $0x0,(%ecx)
41c77b:	74 05                	je     0x41c782
41c77d:	41                   	inc    %ecx
41c77e:	3b c8                	cmp    %eax,%ecx
41c780:	75 f6                	jne    0x41c778
41c782:	2b ce                	sub    %esi,%ecx
41c784:	eb 1a                	jmp    0x41c7a0
41c786:	8b 55 08             	mov    0x8(%ebp),%edx
41c789:	8b ca                	mov    %edx,%ecx
41c78b:	8b 45 0c             	mov    0xc(%ebp),%eax
41c78e:	03 c2                	add    %edx,%eax
41c790:	3b d0                	cmp    %eax,%edx
41c792:	74 0a                	je     0x41c79e
41c794:	80 39 00             	cmpb   $0x0,(%ecx)
41c797:	74 05                	je     0x41c79e
41c799:	41                   	inc    %ecx
41c79a:	3b c8                	cmp    %eax,%ecx
41c79c:	75 f6                	jne    0x41c794
41c79e:	2b ca                	sub    %edx,%ecx
41c7a0:	5f                   	pop    %edi
41c7a1:	8b c1                	mov    %ecx,%eax
41c7a3:	5e                   	pop    %esi
41c7a4:	5d                   	pop    %ebp
41c7a5:	c3                   	ret
41c7a6:	8b ff                	mov    %edi,%edi
41c7a8:	55                   	push   %ebp
41c7a9:	8b ec                	mov    %esp,%ebp
41c7ab:	a1 d0 f5 43 00       	mov    0x43f5d0,%eax
41c7b0:	56                   	push   %esi
41c7b1:	57                   	push   %edi
41c7b2:	83 f8 05             	cmp    $0x5,%eax
41c7b5:	0f 8c b7 00 00 00    	jl     0x41c872
41c7bb:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c7be:	f6 c1 01             	test   $0x1,%cl
41c7c1:	74 21                	je     0x41c7e4
41c7c3:	8b 45 0c             	mov    0xc(%ebp),%eax
41c7c6:	8b f1                	mov    %ecx,%esi
41c7c8:	8d 14 41             	lea    (%ecx,%eax,2),%edx
41c7cb:	3b f2                	cmp    %edx,%esi
41c7cd:	74 0e                	je     0x41c7dd
41c7cf:	33 c0                	xor    %eax,%eax
41c7d1:	66 39 01             	cmp    %ax,(%ecx)
41c7d4:	74 07                	je     0x41c7dd
41c7d6:	83 c1 02             	add    $0x2,%ecx
41c7d9:	3b ca                	cmp    %edx,%ecx
41c7db:	75 f4                	jne    0x41c7d1
41c7dd:	2b ce                	sub    %esi,%ecx
41c7df:	e9 6a 01 00 00       	jmp    0x41c94e
41c7e4:	8b d1                	mov    %ecx,%edx
41c7e6:	83 e2 1f             	and    $0x1f,%edx
41c7e9:	6a 20                	push   $0x20
41c7eb:	58                   	pop    %eax
41c7ec:	2b c2                	sub    %edx,%eax
41c7ee:	f7 da                	neg    %edx
41c7f0:	1b d2                	sbb    %edx,%edx
41c7f2:	23 d0                	and    %eax,%edx
41c7f4:	8b 45 0c             	mov    0xc(%ebp),%eax
41c7f7:	d1 ea                	shr    $1,%edx
41c7f9:	3b c2                	cmp    %edx,%eax
41c7fb:	73 02                	jae    0x41c7ff
41c7fd:	8b d0                	mov    %eax,%edx
41c7ff:	8b 75 08             	mov    0x8(%ebp),%esi
41c802:	8d 3c 51             	lea    (%ecx,%edx,2),%edi
41c805:	33 c0                	xor    %eax,%eax
41c807:	3b f7                	cmp    %edi,%esi
41c809:	74 0c                	je     0x41c817
41c80b:	66 39 01             	cmp    %ax,(%ecx)
41c80e:	74 07                	je     0x41c817
41c810:	83 c1 02             	add    $0x2,%ecx
41c813:	3b cf                	cmp    %edi,%ecx
41c815:	75 f4                	jne    0x41c80b
41c817:	2b ce                	sub    %esi,%ecx
41c819:	d1 f9                	sar    $1,%ecx
41c81b:	3b ca                	cmp    %edx,%ecx
41c81d:	0f 85 2d 01 00 00    	jne    0x41c950
41c823:	8b 45 0c             	mov    0xc(%ebp),%eax
41c826:	8d 3c 4e             	lea    (%esi,%ecx,2),%edi
41c829:	2b c2                	sub    %edx,%eax
41c82b:	83 e0 e0             	and    $0xffffffe0,%eax
41c82e:	03 c1                	add    %ecx,%eax
41c830:	c5 f1 ef c9          	vpxor  %xmm1,%xmm1,%xmm1
41c834:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
41c837:	eb 0f                	jmp    0x41c848
41c839:	c5 f5 75 07          	vpcmpeqw (%edi),%ymm1,%ymm0
41c83d:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
41c841:	85 c0                	test   %eax,%eax
41c843:	75 07                	jne    0x41c84c
41c845:	83 c7 20             	add    $0x20,%edi
41c848:	3b f9                	cmp    %ecx,%edi
41c84a:	75 ed                	jne    0x41c839
41c84c:	8b 45 0c             	mov    0xc(%ebp),%eax
41c84f:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
41c852:	3b f9                	cmp    %ecx,%edi
41c854:	74 0e                	je     0x41c864
41c856:	33 c0                	xor    %eax,%eax
41c858:	66 39 07             	cmp    %ax,(%edi)
41c85b:	74 07                	je     0x41c864
41c85d:	83 c7 02             	add    $0x2,%edi
41c860:	3b f9                	cmp    %ecx,%edi
41c862:	75 f4                	jne    0x41c858
41c864:	8b cf                	mov    %edi,%ecx
41c866:	2b ce                	sub    %esi,%ecx
41c868:	d1 f9                	sar    $1,%ecx
41c86a:	c5 f8 77             	vzeroupper
41c86d:	e9 de 00 00 00       	jmp    0x41c950
41c872:	83 f8 01             	cmp    $0x1,%eax
41c875:	0f 8c b4 00 00 00    	jl     0x41c92f
41c87b:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c87e:	f6 c1 01             	test   $0x1,%cl
41c881:	74 27                	je     0x41c8aa
41c883:	8b 45 0c             	mov    0xc(%ebp),%eax
41c886:	8b f1                	mov    %ecx,%esi
41c888:	8d 14 41             	lea    (%ecx,%eax,2),%edx
41c88b:	3b f2                	cmp    %edx,%esi
41c88d:	0f 84 4a ff ff ff    	je     0x41c7dd
41c893:	33 c0                	xor    %eax,%eax
41c895:	66 39 01             	cmp    %ax,(%ecx)
41c898:	0f 84 3f ff ff ff    	je     0x41c7dd
41c89e:	83 c1 02             	add    $0x2,%ecx
41c8a1:	3b ca                	cmp    %edx,%ecx
41c8a3:	75 f0                	jne    0x41c895
41c8a5:	e9 33 ff ff ff       	jmp    0x41c7dd
41c8aa:	8b d1                	mov    %ecx,%edx
41c8ac:	83 e2 0f             	and    $0xf,%edx
41c8af:	6a 10                	push   $0x10
41c8b1:	58                   	pop    %eax
41c8b2:	2b c2                	sub    %edx,%eax
41c8b4:	f7 da                	neg    %edx
41c8b6:	1b d2                	sbb    %edx,%edx
41c8b8:	23 d0                	and    %eax,%edx
41c8ba:	8b 45 0c             	mov    0xc(%ebp),%eax
41c8bd:	d1 ea                	shr    $1,%edx
41c8bf:	3b c2                	cmp    %edx,%eax
41c8c1:	73 02                	jae    0x41c8c5
41c8c3:	8b d0                	mov    %eax,%edx
41c8c5:	8b 75 08             	mov    0x8(%ebp),%esi
41c8c8:	8d 3c 51             	lea    (%ecx,%edx,2),%edi
41c8cb:	33 c0                	xor    %eax,%eax
41c8cd:	3b f7                	cmp    %edi,%esi
41c8cf:	74 0c                	je     0x41c8dd
41c8d1:	66 39 01             	cmp    %ax,(%ecx)
41c8d4:	74 07                	je     0x41c8dd
41c8d6:	83 c1 02             	add    $0x2,%ecx
41c8d9:	3b cf                	cmp    %edi,%ecx
41c8db:	75 f4                	jne    0x41c8d1
41c8dd:	2b ce                	sub    %esi,%ecx
41c8df:	d1 f9                	sar    $1,%ecx
41c8e1:	3b ca                	cmp    %edx,%ecx
41c8e3:	75 6b                	jne    0x41c950
41c8e5:	8b 45 0c             	mov    0xc(%ebp),%eax
41c8e8:	8d 3c 4e             	lea    (%esi,%ecx,2),%edi
41c8eb:	2b c2                	sub    %edx,%eax
41c8ed:	0f 57 c9             	xorps  %xmm1,%xmm1
41c8f0:	83 e0 f0             	and    $0xfffffff0,%eax
41c8f3:	03 c1                	add    %ecx,%eax
41c8f5:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
41c8f8:	eb 12                	jmp    0x41c90c
41c8fa:	0f 28 c1             	movaps %xmm1,%xmm0
41c8fd:	66 0f 75 07          	pcmpeqw (%edi),%xmm0
41c901:	66 0f d7 c0          	pmovmskb %xmm0,%eax
41c905:	85 c0                	test   %eax,%eax
41c907:	75 07                	jne    0x41c910
41c909:	83 c7 10             	add    $0x10,%edi
41c90c:	3b f9                	cmp    %ecx,%edi
41c90e:	75 ea                	jne    0x41c8fa
41c910:	8b 45 0c             	mov    0xc(%ebp),%eax
41c913:	8d 0c 46             	lea    (%esi,%eax,2),%ecx
41c916:	3b f9                	cmp    %ecx,%edi
41c918:	74 0e                	je     0x41c928
41c91a:	33 c0                	xor    %eax,%eax
41c91c:	66 39 07             	cmp    %ax,(%edi)
41c91f:	74 07                	je     0x41c928
41c921:	83 c7 02             	add    $0x2,%edi
41c924:	3b f9                	cmp    %ecx,%edi
41c926:	75 f4                	jne    0x41c91c
41c928:	8b cf                	mov    %edi,%ecx
41c92a:	e9 ae fe ff ff       	jmp    0x41c7dd
41c92f:	8b 55 08             	mov    0x8(%ebp),%edx
41c932:	8b ca                	mov    %edx,%ecx
41c934:	8b 45 0c             	mov    0xc(%ebp),%eax
41c937:	8d 34 42             	lea    (%edx,%eax,2),%esi
41c93a:	3b d6                	cmp    %esi,%edx
41c93c:	74 0e                	je     0x41c94c
41c93e:	33 c0                	xor    %eax,%eax
41c940:	66 39 01             	cmp    %ax,(%ecx)
41c943:	74 07                	je     0x41c94c
41c945:	83 c1 02             	add    $0x2,%ecx
41c948:	3b ce                	cmp    %esi,%ecx
41c94a:	75 f4                	jne    0x41c940
41c94c:	2b ca                	sub    %edx,%ecx
41c94e:	d1 f9                	sar    $1,%ecx
41c950:	5f                   	pop    %edi
41c951:	8b c1                	mov    %ecx,%eax
41c953:	5e                   	pop    %esi
41c954:	5d                   	pop    %ebp
41c955:	c3                   	ret
41c956:	8b ff                	mov    %edi,%edi
41c958:	55                   	push   %ebp
41c959:	8b ec                	mov    %esp,%ebp
41c95b:	56                   	push   %esi
41c95c:	8b 75 0c             	mov    0xc(%ebp),%esi
41c95f:	8b 06                	mov    (%esi),%eax
41c961:	3b 05 dc f7 43 00    	cmp    0x43f7dc,%eax
41c967:	74 17                	je     0x41c980
41c969:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c96c:	a1 34 db 43 00       	mov    0x43db34,%eax
41c971:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
41c977:	75 07                	jne    0x41c980
41c979:	e8 80 7f 00 00       	call   0x4248fe
41c97e:	89 06                	mov    %eax,(%esi)
41c980:	5e                   	pop    %esi
41c981:	5d                   	pop    %ebp
41c982:	c3                   	ret
41c983:	8b ff                	mov    %edi,%edi
41c985:	55                   	push   %ebp
41c986:	8b ec                	mov    %esp,%ebp
41c988:	8b 45 10             	mov    0x10(%ebp),%eax
41c98b:	56                   	push   %esi
41c98c:	8b 75 0c             	mov    0xc(%ebp),%esi
41c98f:	8b 0e                	mov    (%esi),%ecx
41c991:	3b 0c 85 dc f7 43 00 	cmp    0x43f7dc(,%eax,4),%ecx
41c998:	74 17                	je     0x41c9b1
41c99a:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c99d:	a1 34 db 43 00       	mov    0x43db34,%eax
41c9a2:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
41c9a8:	75 07                	jne    0x41c9b1
41c9aa:	e8 4f 7f 00 00       	call   0x4248fe
41c9af:	89 06                	mov    %eax,(%esi)
41c9b1:	5e                   	pop    %esi
41c9b2:	5d                   	pop    %ebp
41c9b3:	c3                   	ret
41c9b4:	8b ff                	mov    %edi,%edi
41c9b6:	55                   	push   %ebp
41c9b7:	8b ec                	mov    %esp,%ebp
41c9b9:	56                   	push   %esi
41c9ba:	8b 75 0c             	mov    0xc(%ebp),%esi
41c9bd:	8b 06                	mov    (%esi),%eax
41c9bf:	3b 05 c4 fb 43 00    	cmp    0x43fbc4,%eax
41c9c5:	74 17                	je     0x41c9de
41c9c7:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c9ca:	a1 34 db 43 00       	mov    0x43db34,%eax
41c9cf:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
41c9d5:	75 07                	jne    0x41c9de
41c9d7:	e8 e5 60 00 00       	call   0x422ac1
41c9dc:	89 06                	mov    %eax,(%esi)
41c9de:	5e                   	pop    %esi
41c9df:	5d                   	pop    %ebp
41c9e0:	c3                   	ret
41c9e1:	8b ff                	mov    %edi,%edi
41c9e3:	55                   	push   %ebp
41c9e4:	8b ec                	mov    %esp,%ebp
41c9e6:	8b 45 10             	mov    0x10(%ebp),%eax
41c9e9:	56                   	push   %esi
41c9ea:	8b 75 0c             	mov    0xc(%ebp),%esi
41c9ed:	8b 0e                	mov    (%esi),%ecx
41c9ef:	3b 0c 85 c4 fb 43 00 	cmp    0x43fbc4(,%eax,4),%ecx
41c9f6:	74 17                	je     0x41ca0f
41c9f8:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c9fb:	a1 34 db 43 00       	mov    0x43db34,%eax
41ca00:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
41ca06:	75 07                	jne    0x41ca0f
41ca08:	e8 b4 60 00 00       	call   0x422ac1
41ca0d:	89 06                	mov    %eax,(%esi)
41ca0f:	5e                   	pop    %esi
41ca10:	5d                   	pop    %ebp
41ca11:	c3                   	ret
41ca12:	8b ff                	mov    %edi,%edi
41ca14:	55                   	push   %ebp
41ca15:	8b ec                	mov    %esp,%ebp
41ca17:	8b 45 08             	mov    0x8(%ebp),%eax
41ca1a:	33 c9                	xor    %ecx,%ecx
41ca1c:	56                   	push   %esi
41ca1d:	57                   	push   %edi
41ca1e:	be ff 07 00 00       	mov    $0x7ff,%esi
41ca23:	8b 38                	mov    (%eax),%edi
41ca25:	8b 50 04             	mov    0x4(%eax),%edx
41ca28:	8b c2                	mov    %edx,%eax
41ca2a:	c1 e8 14             	shr    $0x14,%eax
41ca2d:	23 c6                	and    %esi,%eax
41ca2f:	3b c6                	cmp    %esi,%eax
41ca31:	75 3b                	jne    0x41ca6e
41ca33:	8b f2                	mov    %edx,%esi
41ca35:	8b c7                	mov    %edi,%eax
41ca37:	81 e6 ff ff 0f 00    	and    $0xfffff,%esi
41ca3d:	0b c6                	or     %esi,%eax
41ca3f:	75 03                	jne    0x41ca44
41ca41:	40                   	inc    %eax
41ca42:	eb 2c                	jmp    0x41ca70
41ca44:	b8 00 00 08 00       	mov    $0x80000,%eax
41ca49:	3b d1                	cmp    %ecx,%edx
41ca4b:	7f 13                	jg     0x41ca60
41ca4d:	7c 04                	jl     0x41ca53
41ca4f:	3b f9                	cmp    %ecx,%edi
41ca51:	73 0d                	jae    0x41ca60
41ca53:	3b f9                	cmp    %ecx,%edi
41ca55:	75 09                	jne    0x41ca60
41ca57:	3b f0                	cmp    %eax,%esi
41ca59:	75 05                	jne    0x41ca60
41ca5b:	6a 04                	push   $0x4
41ca5d:	58                   	pop    %eax
41ca5e:	eb 10                	jmp    0x41ca70
41ca60:	23 d0                	and    %eax,%edx
41ca62:	0b ca                	or     %edx,%ecx
41ca64:	74 04                	je     0x41ca6a
41ca66:	6a 02                	push   $0x2
41ca68:	eb f3                	jmp    0x41ca5d
41ca6a:	6a 03                	push   $0x3
41ca6c:	eb ef                	jmp    0x41ca5d
41ca6e:	33 c0                	xor    %eax,%eax
41ca70:	5f                   	pop    %edi
41ca71:	5e                   	pop    %esi
41ca72:	5d                   	pop    %ebp
41ca73:	c3                   	ret
41ca74:	8b ff                	mov    %edi,%edi
41ca76:	55                   	push   %ebp
41ca77:	8b ec                	mov    %esp,%ebp
41ca79:	8b 45 08             	mov    0x8(%ebp),%eax