4696ce:	8b d1                	mov    %ecx,%edx
4696d0:	8d 04 41             	lea    (%ecx,%eax,2),%eax
4696d3:	3b c8                	cmp    %eax,%ecx
4696d5:	0f 84 7d 01 00 00    	je     0x469858
4696db:	33 ff                	xor    %edi,%edi
4696dd:	66 39 3a             	cmp    %di,(%edx)
4696e0:	0f 84 72 01 00 00    	je     0x469858
4696e6:	83 c2 02             	add    $0x2,%edx
4696e9:	3b d0                	cmp    %eax,%edx
4696eb:	75 f0                	jne    0x4696dd
4696ed:	e9 66 01 00 00       	jmp    0x469858
4696f2:	8b f1                	mov    %ecx,%esi
4696f4:	83 e6 1f             	and    $0x1f,%esi
4696f7:	6a 20                	push   $0x20
4696f9:	58                   	pop    %eax
4696fa:	2b c6                	sub    %esi,%eax
4696fc:	f7 de                	neg    %esi
4696fe:	1b f6                	sbb    %esi,%esi
469700:	23 f0                	and    %eax,%esi
469702:	8b 45 0c             	mov    0xc(%ebp),%eax
469705:	d1 ee                	shr    $1,%esi
469707:	3b c6                	cmp    %esi,%eax
469709:	73 02                	jae    0x46970d
46970b:	8b f0                	mov    %eax,%esi
46970d:	8d 14 71             	lea    (%ecx,%esi,2),%edx
469710:	33 ff                	xor    %edi,%edi
469712:	89 55 fc             	mov    %edx,-0x4(%ebp)
469715:	8b d1                	mov    %ecx,%edx
469717:	3b 4d fc             	cmp    -0x4(%ebp),%ecx
46971a:	74 0d                	je     0x469729
46971c:	66 39 3a             	cmp    %di,(%edx)
46971f:	74 08                	je     0x469729
469721:	83 c2 02             	add    $0x2,%edx
469724:	3b 55 fc             	cmp    -0x4(%ebp),%edx
469727:	75 f3                	jne    0x46971c
469729:	2b d1                	sub    %ecx,%edx
46972b:	d1 fa                	sar    $1,%edx
46972d:	3b d6                	cmp    %esi,%edx
46972f:	0f 85 27 01 00 00    	jne    0x46985c
469735:	8d 14 51             	lea    (%ecx,%edx,2),%edx
469738:	8b c8                	mov    %eax,%ecx
46973a:	2b ce                	sub    %esi,%ecx
46973c:	8b c1                	mov    %ecx,%eax
46973e:	83 e0 1f             	and    $0x1f,%eax
469741:	2b c8                	sub    %eax,%ecx
469743:	c5 f4 57 c9          	vxorps %ymm1,%ymm1,%ymm1
469747:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
46974a:	eb 0f                	jmp    0x46975b
46974c:	c5 f5 75 02          	vpcmpeqw (%edx),%ymm1,%ymm0
469750:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
469754:	85 c0                	test   %eax,%eax
469756:	75 07                	jne    0x46975f
469758:	83 c2 20             	add    $0x20,%edx
46975b:	3b d1                	cmp    %ecx,%edx
46975d:	75 ed                	jne    0x46974c
46975f:	8b 45 08             	mov    0x8(%ebp),%eax
469762:	8b 4d 0c             	mov    0xc(%ebp),%ecx
469765:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
469768:	eb 08                	jmp    0x469772
46976a:	66 39 3a             	cmp    %di,(%edx)
46976d:	74 07                	je     0x469776
46976f:	83 c2 02             	add    $0x2,%edx
469772:	3b d1                	cmp    %ecx,%edx
469774:	75 f4                	jne    0x46976a
469776:	2b d0                	sub    %eax,%edx
469778:	d1 fa                	sar    $1,%edx
46977a:	c5 f8 77             	vzeroupper
46977d:	e9 da 00 00 00       	jmp    0x46985c
469782:	83 f8 01             	cmp    $0x1,%eax
469785:	0f 8c b3 00 00 00    	jl     0x46983e
46978b:	f6 c1 01             	test   $0x1,%cl
46978e:	74 27                	je     0x4697b7
469790:	8b 45 0c             	mov    0xc(%ebp),%eax
469793:	8b d1                	mov    %ecx,%edx
469795:	8d 04 41             	lea    (%ecx,%eax,2),%eax
469798:	3b c8                	cmp    %eax,%ecx
46979a:	0f 84 b8 00 00 00    	je     0x469858
4697a0:	33 ff                	xor    %edi,%edi
4697a2:	66 39 3a             	cmp    %di,(%edx)
4697a5:	0f 84 ad 00 00 00    	je     0x469858
4697ab:	83 c2 02             	add    $0x2,%edx
4697ae:	3b d0                	cmp    %eax,%edx
4697b0:	75 f0                	jne    0x4697a2
4697b2:	e9 a1 00 00 00       	jmp    0x469858
4697b7:	8b f1                	mov    %ecx,%esi
4697b9:	83 e6 0f             	and    $0xf,%esi
4697bc:	6a 10                	push   $0x10
4697be:	58                   	pop    %eax
4697bf:	2b c6                	sub    %esi,%eax
4697c1:	f7 de                	neg    %esi
4697c3:	1b f6                	sbb    %esi,%esi
4697c5:	23 f0                	and    %eax,%esi
4697c7:	8b 45 0c             	mov    0xc(%ebp),%eax
4697ca:	d1 ee                	shr    $1,%esi
4697cc:	3b c6                	cmp    %esi,%eax
4697ce:	73 02                	jae    0x4697d2
4697d0:	8b f0                	mov    %eax,%esi
4697d2:	8d 14 71             	lea    (%ecx,%esi,2),%edx
4697d5:	33 ff                	xor    %edi,%edi
4697d7:	89 55 fc             	mov    %edx,-0x4(%ebp)
4697da:	8b d1                	mov    %ecx,%edx
4697dc:	3b 4d fc             	cmp    -0x4(%ebp),%ecx
4697df:	74 0d                	je     0x4697ee
4697e1:	66 39 3a             	cmp    %di,(%edx)
4697e4:	74 08                	je     0x4697ee
4697e6:	83 c2 02             	add    $0x2,%edx
4697e9:	3b 55 fc             	cmp    -0x4(%ebp),%edx
4697ec:	75 f3                	jne    0x4697e1
4697ee:	2b d1                	sub    %ecx,%edx
4697f0:	d1 fa                	sar    $1,%edx
4697f2:	3b d6                	cmp    %esi,%edx
4697f4:	75 66                	jne    0x46985c
4697f6:	8d 14 51             	lea    (%ecx,%edx,2),%edx
4697f9:	66 0f ef c9          	pxor   %xmm1,%xmm1
4697fd:	8b c8                	mov    %eax,%ecx
4697ff:	2b ce                	sub    %esi,%ecx
469801:	8b c1                	mov    %ecx,%eax
469803:	83 e0 0f             	and    $0xf,%eax
469806:	2b c8                	sub    %eax,%ecx
469808:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
46980b:	eb 12                	jmp    0x46981f
46980d:	0f 28 02             	movaps (%edx),%xmm0
469810:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
469814:	66 0f d7 c0          	pmovmskb %xmm0,%eax
469818:	85 c0                	test   %eax,%eax
46981a:	75 07                	jne    0x469823
46981c:	83 c2 10             	add    $0x10,%edx
46981f:	3b d1                	cmp    %ecx,%edx
469821:	75 ea                	jne    0x46980d
469823:	8b 45 08             	mov    0x8(%ebp),%eax
469826:	8b 4d 0c             	mov    0xc(%ebp),%ecx
469829:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
46982c:	eb 08                	jmp    0x469836
46982e:	66 39 3a             	cmp    %di,(%edx)
469831:	74 07                	je     0x46983a
469833:	83 c2 02             	add    $0x2,%edx
469836:	3b d1                	cmp    %ecx,%edx
469838:	75 f4                	jne    0x46982e
46983a:	2b d0                	sub    %eax,%edx
46983c:	eb 1c                	jmp    0x46985a
46983e:	8b 45 0c             	mov    0xc(%ebp),%eax
469841:	8b d1                	mov    %ecx,%edx
469843:	8d 04 41             	lea    (%ecx,%eax,2),%eax
469846:	3b c8                	cmp    %eax,%ecx
469848:	74 0e                	je     0x469858
46984a:	33 ff                	xor    %edi,%edi
46984c:	66 39 3a             	cmp    %di,(%edx)
46984f:	74 07                	je     0x469858
469851:	83 c2 02             	add    $0x2,%edx
469854:	3b d0                	cmp    %eax,%edx
469856:	75 f4                	jne    0x46984c
469858:	2b d1                	sub    %ecx,%edx
46985a:	d1 fa                	sar    $1,%edx
46985c:	5f                   	pop    %edi
46985d:	8b c2                	mov    %edx,%eax
46985f:	5e                   	pop    %esi
469860:	8b e5                	mov    %ebp,%esp
469862:	5d                   	pop    %ebp
469863:	c3                   	ret
469864:	cc                   	int3
469865:	cc                   	int3
469866:	cc                   	int3
469867:	cc                   	int3
469868:	cc                   	int3
469869:	cc                   	int3
46986a:	cc                   	int3
46986b:	cc                   	int3
46986c:	cc                   	int3
46986d:	cc                   	int3
46986e:	cc                   	int3
46986f:	cc                   	int3
469870:	55                   	push   %ebp
469871:	8b ec                	mov    %esp,%ebp
469873:	56                   	push   %esi
469874:	33 c0                	xor    %eax,%eax
469876:	50                   	push   %eax
469877:	50                   	push   %eax
469878:	50                   	push   %eax
469879:	50                   	push   %eax
46987a:	50                   	push   %eax
46987b:	50                   	push   %eax
46987c:	50                   	push   %eax
46987d:	50                   	push   %eax
46987e:	8b 55 0c             	mov    0xc(%ebp),%edx
469881:	8d 49 00             	lea    0x0(%ecx),%ecx
469884:	8a 02                	mov    (%edx),%al
469886:	0a c0                	or     %al,%al
469888:	74 09                	je     0x469893
46988a:	83 c2 01             	add    $0x1,%edx
46988d:	0f ab 04 24          	bts    %eax,(%esp)
469891:	eb f1                	jmp    0x469884
469893:	8b 75 08             	mov    0x8(%ebp),%esi
469896:	83 c9 ff             	or     $0xffffffff,%ecx
469899:	8d 49 00             	lea    0x0(%ecx),%ecx
46989c:	83 c1 01             	add    $0x1,%ecx
46989f:	8a 06                	mov    (%esi),%al
4698a1:	0a c0                	or     %al,%al
4698a3:	74 09                	je     0x4698ae
4698a5:	83 c6 01             	add    $0x1,%esi
4698a8:	0f a3 04 24          	bt     %eax,(%esp)
4698ac:	73 ee                	jae    0x46989c
4698ae:	8b c1                	mov    %ecx,%eax
4698b0:	83 c4 20             	add    $0x20,%esp
4698b3:	5e                   	pop    %esi
4698b4:	c9                   	leave
4698b5:	c3                   	ret
4698b6:	8b ff                	mov    %edi,%edi
4698b8:	55                   	push   %ebp
4698b9:	8b ec                	mov    %esp,%ebp
4698bb:	51                   	push   %ecx
4698bc:	51                   	push   %ecx
4698bd:	57                   	push   %edi
4698be:	8b 7d 10             	mov    0x10(%ebp),%edi
4698c1:	85 ff                	test   %edi,%edi
4698c3:	75 17                	jne    0x4698dc
4698c5:	e8 65 35 fe ff       	call   0x44ce2f
4698ca:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4698d0:	e8 01 34 fe ff       	call   0x44ccd6
4698d5:	d9 ee                	fldz
4698d7:	e9 d1 00 00 00       	jmp    0x4699ad
4698dc:	53                   	push   %ebx
4698dd:	56                   	push   %esi
4698de:	bb ff ff 00 00       	mov    $0xffff,%ebx
4698e3:	53                   	push   %ebx
4698e4:	68 3f 13 00 00       	push   $0x133f
4698e9:	e8 9f ab 00 00       	call   0x47448d
4698ee:	dd 45 08             	fldl   0x8(%ebp)
4698f1:	8b f0                	mov    %eax,%esi
4698f3:	59                   	pop    %ecx
4698f4:	59                   	pop    %ecx
4698f5:	0f b7 4d 0e          	movzwl 0xe(%ebp),%ecx
4698f9:	b8 f0 7f 00 00       	mov    $0x7ff0,%eax
4698fe:	23 c8                	and    %eax,%ecx
469900:	66 3b c8             	cmp    %ax,%cx
469903:	75 48                	jne    0x46994d
469905:	83 0f ff             	orl    $0xffffffff,(%edi)
469908:	51                   	push   %ecx
469909:	51                   	push   %ecx
46990a:	dd 1c 24             	fstpl  (%esp)
46990d:	e8 cb a9 00 00       	call   0x4742dd
469912:	59                   	pop    %ecx
469913:	59                   	pop    %ecx
469914:	83 e8 01             	sub    $0x1,%eax
469917:	74 26                	je     0x46993f
469919:	83 e8 01             	sub    $0x1,%eax
46991c:	74 21                	je     0x46993f
46991e:	83 e8 01             	sub    $0x1,%eax
469921:	74 1c                	je     0x46993f
469923:	dd 45 08             	fldl   0x8(%ebp)
469926:	dd 05 50 ca 49 00    	fldl   0x49ca50
46992c:	56                   	push   %esi
46992d:	83 ec 10             	sub    $0x10,%esp
469930:	d8 c1                	fadd   %st(1),%st
469932:	dd 5c 24 08          	fstpl  0x8(%esp)
469936:	dd 1c 24             	fstpl  (%esp)
469939:	6a 17                	push   $0x17
46993b:	6a 08                	push   $0x8
46993d:	eb 44                	jmp    0x469983
46993f:	53                   	push   %ebx
469940:	56                   	push   %esi
469941:	e8 47 ab 00 00       	call   0x47448d
469946:	dd 45 08             	fldl   0x8(%ebp)
469949:	59                   	pop    %ecx
46994a:	59                   	pop    %ecx
46994b:	eb 5e                	jmp    0x4699ab
46994d:	d9 ee                	fldz
46994f:	dd e9                	fucomp %st(1)
469951:	df e0                	fnstsw %ax
469953:	f6 c4 44             	test   $0x44,%ah
469956:	7a 38                	jp     0x469990
469958:	51                   	push   %ecx
469959:	51                   	push   %ecx
46995a:	dd 1c 24             	fstpl  (%esp)
46995d:	e8 b2 9e fe ff       	call   0x453814
469962:	59                   	pop    %ecx
469963:	59                   	pop    %ecx
469964:	85 c0                	test   %eax,%eax
469966:	74 25                	je     0x46998d
469968:	83 27 00             	andl   $0x0,(%edi)
46996b:	dd 05 f8 d3 49 00    	fldl   0x49d3f8
469971:	56                   	push   %esi
469972:	83 ec 10             	sub    $0x10,%esp
469975:	dd 5c 24 08          	fstpl  0x8(%esp)
469979:	dd 45 08             	fldl   0x8(%ebp)
46997c:	dd 1c 24             	fstpl  (%esp)
46997f:	6a 17                	push   $0x17
469981:	6a 00                	push   $0x0
469983:	e8 92 40 00 00       	call   0x46da1a
469988:	83 c4 1c             	add    $0x1c,%esp
46998b:	eb 1e                	jmp    0x4699ab
46998d:	dd 45 08             	fldl   0x8(%ebp)
469990:	57                   	push   %edi
469991:	51                   	push   %ecx
469992:	51                   	push   %ecx
469993:	dd 1c 24             	fstpl  (%esp)
469996:	e8 fd a7 00 00       	call   0x474198
46999b:	53                   	push   %ebx
46999c:	56                   	push   %esi
46999d:	dd 5d f8             	fstpl  -0x8(%ebp)
4699a0:	e8 e8 aa 00 00       	call   0x47448d
4699a5:	dd 45 f8             	fldl   -0x8(%ebp)
4699a8:	83 c4 14             	add    $0x14,%esp
4699ab:	5e                   	pop    %esi
4699ac:	5b                   	pop    %ebx
4699ad:	5f                   	pop    %edi
4699ae:	8b e5                	mov    %ebp,%esp
4699b0:	5d                   	pop    %ebp
4699b1:	c3                   	ret
4699b2:	8b ff                	mov    %edi,%edi
4699b4:	55                   	push   %ebp
4699b5:	8b ec                	mov    %esp,%ebp
4699b7:	8b 55 0c             	mov    0xc(%ebp),%edx
4699ba:	a1 10 82 4b 00       	mov    0x4b8210,%eax
4699bf:	f7 d2                	not    %edx
4699c1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4699c4:	23 d0                	and    %eax,%edx
4699c6:	23 4d 0c             	and    0xc(%ebp),%ecx
4699c9:	0b d1                	or     %ecx,%edx
4699cb:	89 15 10 82 4b 00    	mov    %edx,0x4b8210
4699d1:	5d                   	pop    %ebp
4699d2:	c3                   	ret
4699d3:	e8 43 1e 01 00       	call   0x47b81b
4699d8:	85 c0                	test   %eax,%eax
4699da:	74 08                	je     0x4699e4
4699dc:	6a 16                	push   $0x16
4699de:	e8 9c 1e 01 00       	call   0x47b87f
4699e3:	59                   	pop    %ecx
4699e4:	f6 05 10 82 4b 00 02 	testb  $0x2,0x4b8210
4699eb:	74 21                	je     0x469a0e
4699ed:	6a 17                	push   $0x17
4699ef:	e8 a9 fc 01 00       	call   0x48969d
4699f4:	85 c0                	test   %eax,%eax
4699f6:	74 05                	je     0x4699fd
4699f8:	6a 07                	push   $0x7
4699fa:	59                   	pop    %ecx
4699fb:	cd 29                	int    $0x29
4699fd:	6a 01                	push   $0x1
4699ff:	68 15 00 00 40       	push   $0x40000015
469a04:	6a 03                	push   $0x3
469a06:	e8 e2 30 fe ff       	call   0x44caed
469a0b:	83 c4 0c             	add    $0xc,%esp
469a0e:	6a 03                	push   $0x3
469a10:	e8 15 29 00 00       	call   0x46c32a
469a15:	cc                   	int3
469a16:	6a 00                	push   $0x0
469a18:	e8 02 00 00 00       	call   0x469a1f
469a1d:	59                   	pop    %ecx
469a1e:	c3                   	ret
469a1f:	8b ff                	mov    %edi,%edi
469a21:	55                   	push   %ebp