418651:	50                   	push   %eax
418652:	ff 73 08             	push   0x8(%ebx)
418655:	e8 95 00 00 00       	call   0x4186ef
41865a:	83 c4 0c             	add    $0xc,%esp
41865d:	85 c0                	test   %eax,%eax
41865f:	75 26                	jne    0x418687
418661:	83 65 c0 fe          	andl   $0xfffffffe,-0x40(%ebp)
418665:	50                   	push   %eax
418666:	8d 43 18             	lea    0x18(%ebx),%eax
418669:	50                   	push   %eax
41866a:	8d 43 10             	lea    0x10(%ebx),%eax
41866d:	50                   	push   %eax
41866e:	ff 73 0c             	push   0xc(%ebx)
418671:	8d 43 20             	lea    0x20(%ebx),%eax
418674:	ff 73 08             	push   0x8(%ebx)
418677:	50                   	push   %eax
418678:	8d 45 80             	lea    -0x80(%ebp),%eax
41867b:	50                   	push   %eax
41867c:	e8 7c 02 00 00       	call   0x4188fd
418681:	8b 73 20             	mov    0x20(%ebx),%esi
418684:	83 c4 1c             	add    $0x1c,%esp
418687:	ff 73 08             	push   0x8(%ebx)
41868a:	e8 5e ff ff ff       	call   0x4185ed
41868f:	59                   	pop    %ecx
418690:	8b f8                	mov    %eax,%edi
418692:	e8 b5 2b ff ff       	call   0x40b24c
418697:	84 c0                	test   %al,%al
418699:	74 29                	je     0x4186c4
41869b:	85 ff                	test   %edi,%edi
41869d:	74 25                	je     0x4186c4
41869f:	dd 43 18             	fldl   0x18(%ebx)
4186a2:	56                   	push   %esi
4186a3:	83 ec 18             	sub    $0x18,%esp
4186a6:	dd 5c 24 10          	fstpl  0x10(%esp)
4186aa:	d9 ee                	fldz
4186ac:	dd 5c 24 08          	fstpl  0x8(%esp)
4186b0:	dd 43 10             	fldl   0x10(%ebx)
4186b3:	dd 1c 24             	fstpl  (%esp)
4186b6:	ff 73 0c             	push   0xc(%ebx)
4186b9:	57                   	push   %edi
4186ba:	e8 63 05 00 00       	call   0x418c22
4186bf:	83 c4 24             	add    $0x24,%esp
4186c2:	eb 18                	jmp    0x4186dc
4186c4:	57                   	push   %edi
4186c5:	e8 29 05 00 00       	call   0x418bf3
4186ca:	c7 04 24 ff ff 00 00 	movl   $0xffff,(%esp)
4186d1:	56                   	push   %esi
4186d2:	e8 37 c3 ff ff       	call   0x414a0e
4186d7:	dd 43 18             	fldl   0x18(%ebx)
4186da:	59                   	pop    %ecx
4186db:	59                   	pop    %ecx
4186dc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4186df:	5f                   	pop    %edi
4186e0:	33 cd                	xor    %ebp,%ecx
4186e2:	5e                   	pop    %esi
4186e3:	e8 0d 05 ff ff       	call   0x408bf5
4186e8:	8b e5                	mov    %ebp,%esp
4186ea:	5d                   	pop    %ebp
4186eb:	8b e3                	mov    %ebx,%esp
4186ed:	5b                   	pop    %ebx
4186ee:	c3                   	ret
4186ef:	8b ff                	mov    %edi,%edi
4186f1:	55                   	push   %ebp
4186f2:	8b ec                	mov    %esp,%ebp
4186f4:	83 ec 10             	sub    $0x10,%esp
4186f7:	53                   	push   %ebx
4186f8:	8b 5d 08             	mov    0x8(%ebp),%ebx
4186fb:	56                   	push   %esi
4186fc:	8b f3                	mov    %ebx,%esi
4186fe:	83 e6 1f             	and    $0x1f,%esi
418701:	f6 c3 08             	test   $0x8,%bl
418704:	74 16                	je     0x41871c
418706:	f6 45 10 01          	testb  $0x1,0x10(%ebp)
41870a:	74 10                	je     0x41871c
41870c:	6a 01                	push   $0x1
41870e:	e8 25 c3 ff ff       	call   0x414a38
418713:	59                   	pop    %ecx
418714:	83 e6 f7             	and    $0xfffffff7,%esi
418717:	e9 9d 01 00 00       	jmp    0x4188b9
41871c:	8b c3                	mov    %ebx,%eax
41871e:	23 45 10             	and    0x10(%ebp),%eax
418721:	a8 04                	test   $0x4,%al
418723:	74 10                	je     0x418735
418725:	6a 04                	push   $0x4
418727:	e8 0c c3 ff ff       	call   0x414a38
41872c:	59                   	pop    %ecx
41872d:	83 e6 fb             	and    $0xfffffffb,%esi
418730:	e9 84 01 00 00       	jmp    0x4188b9
418735:	f6 c3 01             	test   $0x1,%bl
418738:	0f 84 9a 00 00 00    	je     0x4187d8
41873e:	f6 45 10 08          	testb  $0x8,0x10(%ebp)
418742:	0f 84 90 00 00 00    	je     0x4187d8
418748:	6a 08                	push   $0x8
41874a:	e8 e9 c2 ff ff       	call   0x414a38
41874f:	8b 45 10             	mov    0x10(%ebp),%eax
418752:	59                   	pop    %ecx
418753:	b9 00 0c 00 00       	mov    $0xc00,%ecx
418758:	23 c1                	and    %ecx,%eax
41875a:	74 54                	je     0x4187b0
41875c:	3d 00 04 00 00       	cmp    $0x400,%eax
418761:	74 37                	je     0x41879a
418763:	3d 00 08 00 00       	cmp    $0x800,%eax
418768:	74 1a                	je     0x418784
41876a:	3b c1                	cmp    %ecx,%eax
41876c:	75 62                	jne    0x4187d0
41876e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
418771:	d9 ee                	fldz
418773:	dc 19                	fcompl (%ecx)
418775:	df e0                	fnstsw %ax
418777:	dd 05 a8 11 42 00    	fldl   0x4211a8
41877d:	f6 c4 05             	test   $0x5,%ah
418780:	7b 4c                	jnp    0x4187ce
418782:	eb 48                	jmp    0x4187cc
418784:	8b 4d 0c             	mov    0xc(%ebp),%ecx
418787:	d9 ee                	fldz
418789:	dc 19                	fcompl (%ecx)
41878b:	df e0                	fnstsw %ax
41878d:	f6 c4 05             	test   $0x5,%ah
418790:	7b 2c                	jnp    0x4187be
418792:	dd 05 a8 11 42 00    	fldl   0x4211a8
418798:	eb 32                	jmp    0x4187cc
41879a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41879d:	d9 ee                	fldz
41879f:	dc 19                	fcompl (%ecx)
4187a1:	df e0                	fnstsw %ax
4187a3:	f6 c4 05             	test   $0x5,%ah
4187a6:	7a 1e                	jp     0x4187c6
4187a8:	dd 05 a8 11 42 00    	fldl   0x4211a8
4187ae:	eb 1e                	jmp    0x4187ce
4187b0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4187b3:	d9 ee                	fldz
4187b5:	dc 19                	fcompl (%ecx)
4187b7:	df e0                	fnstsw %ax
4187b9:	f6 c4 05             	test   $0x5,%ah
4187bc:	7a 08                	jp     0x4187c6
4187be:	dd 05 a0 11 42 00    	fldl   0x4211a0
4187c4:	eb 08                	jmp    0x4187ce
4187c6:	dd 05 a0 11 42 00    	fldl   0x4211a0
4187cc:	d9 e0                	fchs
4187ce:	dd 19                	fstpl  (%ecx)
4187d0:	83 e6 fe             	and    $0xfffffffe,%esi
4187d3:	e9 e1 00 00 00       	jmp    0x4188b9
4187d8:	f6 c3 02             	test   $0x2,%bl
4187db:	0f 84 d8 00 00 00    	je     0x4188b9
4187e1:	f6 45 10 10          	testb  $0x10,0x10(%ebp)
4187e5:	0f 84 ce 00 00 00    	je     0x4188b9
4187eb:	8b 45 0c             	mov    0xc(%ebp),%eax
4187ee:	57                   	push   %edi
4187ef:	8b fb                	mov    %ebx,%edi
4187f1:	c1 ef 04             	shr    $0x4,%edi
4187f4:	dd 00                	fldl   (%eax)
4187f6:	83 e7 01             	and    $0x1,%edi
4187f9:	d9 ee                	fldz
4187fb:	dd e9                	fucomp %st(1)
4187fd:	df e0                	fnstsw %ax
4187ff:	f6 c4 44             	test   $0x44,%ah
418802:	0f 8b 9c 00 00 00    	jnp    0x4188a4
418808:	8d 45 fc             	lea    -0x4(%ebp),%eax
41880b:	50                   	push   %eax
41880c:	51                   	push   %ecx
41880d:	51                   	push   %ecx
41880e:	dd 1c 24             	fstpl  (%esp)
418811:	e8 ac 04 00 00       	call   0x418cc2
418816:	8b 55 fc             	mov    -0x4(%ebp),%edx
418819:	83 c4 0c             	add    $0xc,%esp
41881c:	81 c2 00 fa ff ff    	add    $0xfffffa00,%edx
418822:	dd 55 f0             	fstl   -0x10(%ebp)
418825:	d9 ee                	fldz
418827:	81 fa ce fb ff ff    	cmp    $0xfffffbce,%edx
41882d:	7d 07                	jge    0x418836
41882f:	33 ff                	xor    %edi,%edi
418831:	de c9                	fmulp  %st,%st(1)
418833:	47                   	inc    %edi
418834:	eb 67                	jmp    0x41889d
418836:	de d9                	fcompp
418838:	df e0                	fnstsw %ax
41883a:	f6 c4 41             	test   $0x41,%ah
41883d:	75 09                	jne    0x418848
41883f:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
418846:	eb 04                	jmp    0x41884c
418848:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41884c:	8b 45 f6             	mov    -0xa(%ebp),%eax
41884f:	b9 03 fc ff ff       	mov    $0xfffffc03,%ecx
418854:	83 e0 0f             	and    $0xf,%eax
418857:	83 c8 10             	or     $0x10,%eax
41885a:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
41885e:	3b d1                	cmp    %ecx,%edx
418860:	7d 30                	jge    0x418892
418862:	8b 45 f0             	mov    -0x10(%ebp),%eax
418865:	2b ca                	sub    %edx,%ecx
418867:	8b 55 f4             	mov    -0xc(%ebp),%edx
41886a:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)
41886e:	74 05                	je     0x418875
418870:	85 ff                	test   %edi,%edi
418872:	75 01                	jne    0x418875
418874:	47                   	inc    %edi
418875:	d1 e8                	shr    $1,%eax
418877:	f6 45 f4 01          	testb  $0x1,-0xc(%ebp)
41887b:	89 45 f0             	mov    %eax,-0x10(%ebp)
41887e:	74 08                	je     0x418888
418880:	0d 00 00 00 80       	or     $0x80000000,%eax
418885:	89 45 f0             	mov    %eax,-0x10(%ebp)
418888:	d1 ea                	shr    $1,%edx
41888a:	89 55 f4             	mov    %edx,-0xc(%ebp)
41888d:	83 e9 01             	sub    $0x1,%ecx
418890:	75 d8                	jne    0x41886a
418892:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
418896:	dd 45 f0             	fldl   -0x10(%ebp)
418899:	74 02                	je     0x41889d
41889b:	d9 e0                	fchs
41889d:	8b 45 0c             	mov    0xc(%ebp),%eax
4188a0:	dd 18                	fstpl  (%eax)
4188a2:	eb 05                	jmp    0x4188a9
4188a4:	33 ff                	xor    %edi,%edi
4188a6:	dd d8                	fstp   %st(0)
4188a8:	47                   	inc    %edi
4188a9:	85 ff                	test   %edi,%edi
4188ab:	5f                   	pop    %edi
4188ac:	74 08                	je     0x4188b6
4188ae:	6a 10                	push   $0x10
4188b0:	e8 83 c1 ff ff       	call   0x414a38
4188b5:	59                   	pop    %ecx
4188b6:	83 e6 fd             	and    $0xfffffffd,%esi
4188b9:	f6 c3 10             	test   $0x10,%bl
4188bc:	74 11                	je     0x4188cf
4188be:	f6 45 10 20          	testb  $0x20,0x10(%ebp)
4188c2:	74 0b                	je     0x4188cf
4188c4:	6a 20                	push   $0x20
4188c6:	e8 6d c1 ff ff       	call   0x414a38
4188cb:	59                   	pop    %ecx
4188cc:	83 e6 ef             	and    $0xffffffef,%esi
4188cf:	33 c0                	xor    %eax,%eax
4188d1:	85 f6                	test   %esi,%esi
4188d3:	5e                   	pop    %esi
4188d4:	0f 94 c0             	sete   %al
4188d7:	5b                   	pop    %ebx
4188d8:	c9                   	leave
4188d9:	c3                   	ret
4188da:	8b ff                	mov    %edi,%edi
4188dc:	55                   	push   %ebp
4188dd:	8b ec                	mov    %esp,%ebp
4188df:	6a 00                	push   $0x0
4188e1:	ff 75 1c             	push   0x1c(%ebp)
4188e4:	ff 75 18             	push   0x18(%ebp)
4188e7:	ff 75 14             	push   0x14(%ebp)
4188ea:	ff 75 10             	push   0x10(%ebp)
4188ed:	ff 75 0c             	push   0xc(%ebp)
4188f0:	ff 75 08             	push   0x8(%ebp)
4188f3:	e8 05 00 00 00       	call   0x4188fd
4188f8:	83 c4 1c             	add    $0x1c,%esp
4188fb:	5d                   	pop    %ebp
4188fc:	c3                   	ret
4188fd:	8b ff                	mov    %edi,%edi
4188ff:	55                   	push   %ebp
418900:	8b ec                	mov    %esp,%ebp
418902:	8b 45 08             	mov    0x8(%ebp),%eax
418905:	33 c9                	xor    %ecx,%ecx
418907:	53                   	push   %ebx
418908:	33 db                	xor    %ebx,%ebx
41890a:	43                   	inc    %ebx
41890b:	89 48 04             	mov    %ecx,0x4(%eax)
41890e:	8b 45 08             	mov    0x8(%ebp),%eax
418911:	57                   	push   %edi
418912:	bf 0d 00 00 c0       	mov    $0xc000000d,%edi
418917:	89 48 08             	mov    %ecx,0x8(%eax)
41891a:	8b 45 08             	mov    0x8(%ebp),%eax
41891d:	89 48 0c             	mov    %ecx,0xc(%eax)
418920:	8b 4d 10             	mov    0x10(%ebp),%ecx
418923:	f6 c1 10             	test   $0x10,%cl
418926:	74 0b                	je     0x418933
418928:	8b 45 08             	mov    0x8(%ebp),%eax
41892b:	bf 8f 00 00 c0       	mov    $0xc000008f,%edi
418930:	09 58 04             	or     %ebx,0x4(%eax)
418933:	f6 c1 02             	test   $0x2,%cl
418936:	74 0c                	je     0x418944
418938:	8b 45 08             	mov    0x8(%ebp),%eax
41893b:	bf 93 00 00 c0       	mov    $0xc0000093,%edi
418940:	83 48 04 02          	orl    $0x2,0x4(%eax)
418944:	f6 c1 01             	test   $0x1,%cl
418947:	74 0c                	je     0x418955
418949:	8b 45 08             	mov    0x8(%ebp),%eax
41894c:	bf 91 00 00 c0       	mov    $0xc0000091,%edi
418951:	83 48 04 04          	orl    $0x4,0x4(%eax)
418955:	f6 c1 04             	test   $0x4,%cl
418958:	74 0c                	je     0x418966
41895a:	8b 45 08             	mov    0x8(%ebp),%eax
41895d:	bf 8e 00 00 c0       	mov    $0xc000008e,%edi
418962:	83 48 04 08          	orl    $0x8,0x4(%eax)
418966:	f6 c1 08             	test   $0x8,%cl
418969:	74 0c                	je     0x418977
41896b:	8b 45 08             	mov    0x8(%ebp),%eax
41896e:	bf 90 00 00 c0       	mov    $0xc0000090,%edi
418973:	83 48 04 10          	orl    $0x10,0x4(%eax)
418977:	8b 4d 08             	mov    0x8(%ebp),%ecx
41897a:	56                   	push   %esi
41897b:	8b 75 0c             	mov    0xc(%ebp),%esi
41897e:	8b 06                	mov    (%esi),%eax
418980:	c1 e0 04             	shl    $0x4,%eax
418983:	f7 d0                	not    %eax
418985:	33 41 08             	xor    0x8(%ecx),%eax
418988:	83 e0 10             	and    $0x10,%eax
41898b:	31 41 08             	xor    %eax,0x8(%ecx)
41898e:	8b 4d 08             	mov    0x8(%ebp),%ecx
418991:	8b 06                	mov    (%esi),%eax
418993:	03 c0                	add    %eax,%eax
418995:	f7 d0                	not    %eax
418997:	33 41 08             	xor    0x8(%ecx),%eax
41899a:	83 e0 08             	and    $0x8,%eax
41899d:	31 41 08             	xor    %eax,0x8(%ecx)
4189a0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4189a3:	8b 06                	mov    (%esi),%eax
4189a5:	d1 e8                	shr    $1,%eax
4189a7:	f7 d0                	not    %eax
4189a9:	33 41 08             	xor    0x8(%ecx),%eax
4189ac:	83 e0 04             	and    $0x4,%eax
4189af:	31 41 08             	xor    %eax,0x8(%ecx)
4189b2:	8b 4d 08             	mov    0x8(%ebp),%ecx
4189b5:	8b 06                	mov    (%esi),%eax
4189b7:	c1 e8 03             	shr    $0x3,%eax
4189ba:	f7 d0                	not    %eax
4189bc:	33 41 08             	xor    0x8(%ecx),%eax
4189bf:	83 e0 02             	and    $0x2,%eax
4189c2:	31 41 08             	xor    %eax,0x8(%ecx)
4189c5:	8b 06                	mov    (%esi),%eax
4189c7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4189ca:	c1 e8 05             	shr    $0x5,%eax
4189cd:	f7 d0                	not    %eax
4189cf:	33 41 08             	xor    0x8(%ecx),%eax
4189d2:	23 c3                	and    %ebx,%eax
4189d4:	31 41 08             	xor    %eax,0x8(%ecx)
4189d7:	e8 b5 c0 ff ff       	call   0x414a91
4189dc:	8b d0                	mov    %eax,%edx
4189de:	f6 c2 01             	test   $0x1,%dl
4189e1:	74 07                	je     0x4189ea
4189e3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4189e6:	83 49 0c 10          	orl    $0x10,0xc(%ecx)
4189ea:	f6 c2 04             	test   $0x4,%dl
4189ed:	74 07                	je     0x4189f6
4189ef:	8b 45 08             	mov    0x8(%ebp),%eax
4189f2:	83 48 0c 08          	orl    $0x8,0xc(%eax)
4189f6:	f6 c2 08             	test   $0x8,%dl
4189f9:	74 07                	je     0x418a02
4189fb:	8b 45 08             	mov    0x8(%ebp),%eax
4189fe:	83 48 0c 04          	orl    $0x4,0xc(%eax)
418a02:	f6 c2 10             	test   $0x10,%dl
418a05:	74 07                	je     0x418a0e
418a07:	8b 45 08             	mov    0x8(%ebp),%eax
418a0a:	83 48 0c 02          	orl    $0x2,0xc(%eax)
418a0e:	f6 c2 20             	test   $0x20,%dl
418a11:	74 06                	je     0x418a19