40e7d8:	89 41 60             	mov    %eax,0x60(%ecx)
40e7db:	8b 45 08             	mov    0x8(%ebp),%eax
40e7de:	dd 03                	fldl   (%ebx)
40e7e0:	dd 58 50             	fstpl  0x50(%eax)
40e7e3:	e8 29 de ff ff       	call   0x40c611
40e7e8:	8d 45 08             	lea    0x8(%ebp),%eax
40e7eb:	50                   	push   %eax
40e7ec:	6a 01                	push   $0x1
40e7ee:	6a 00                	push   $0x0
40e7f0:	57                   	push   %edi
40e7f1:	ff 15 54 f0 40 00    	call   *0x40f054
40e7f7:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e7fa:	f6 41 08 10          	testb  $0x10,0x8(%ecx)
40e7fe:	74 03                	je     0x40e803
40e800:	83 26 fe             	andl   $0xfffffffe,(%esi)
40e803:	f6 41 08 08          	testb  $0x8,0x8(%ecx)
40e807:	74 03                	je     0x40e80c
40e809:	83 26 fb             	andl   $0xfffffffb,(%esi)
40e80c:	f6 41 08 04          	testb  $0x4,0x8(%ecx)
40e810:	74 03                	je     0x40e815
40e812:	83 26 f7             	andl   $0xfffffff7,(%esi)
40e815:	f6 41 08 02          	testb  $0x2,0x8(%ecx)
40e819:	74 03                	je     0x40e81e
40e81b:	83 26 ef             	andl   $0xffffffef,(%esi)
40e81e:	f6 41 08 01          	testb  $0x1,0x8(%ecx)
40e822:	74 03                	je     0x40e827
40e824:	83 26 df             	andl   $0xffffffdf,(%esi)
40e827:	8b 01                	mov    (%ecx),%eax
40e829:	ba ff f3 ff ff       	mov    $0xfffff3ff,%edx
40e82e:	83 e0 03             	and    $0x3,%eax
40e831:	83 e8 00             	sub    $0x0,%eax
40e834:	74 35                	je     0x40e86b
40e836:	83 e8 01             	sub    $0x1,%eax
40e839:	74 22                	je     0x40e85d
40e83b:	83 e8 01             	sub    $0x1,%eax
40e83e:	74 0d                	je     0x40e84d
40e840:	83 e8 01             	sub    $0x1,%eax
40e843:	75 28                	jne    0x40e86d
40e845:	81 0e 00 0c 00 00    	orl    $0xc00,(%esi)
40e84b:	eb 20                	jmp    0x40e86d
40e84d:	8b 06                	mov    (%esi),%eax
40e84f:	25 ff fb ff ff       	and    $0xfffffbff,%eax
40e854:	0d 00 08 00 00       	or     $0x800,%eax
40e859:	89 06                	mov    %eax,(%esi)
40e85b:	eb 10                	jmp    0x40e86d
40e85d:	8b 06                	mov    (%esi),%eax
40e85f:	25 ff f7 ff ff       	and    $0xfffff7ff,%eax
40e864:	0d 00 04 00 00       	or     $0x400,%eax
40e869:	eb ee                	jmp    0x40e859
40e86b:	21 16                	and    %edx,(%esi)
40e86d:	8b 01                	mov    (%ecx),%eax
40e86f:	c1 e8 02             	shr    $0x2,%eax
40e872:	83 e0 07             	and    $0x7,%eax
40e875:	83 e8 00             	sub    $0x0,%eax
40e878:	74 19                	je     0x40e893
40e87a:	83 e8 01             	sub    $0x1,%eax
40e87d:	74 09                	je     0x40e888
40e87f:	83 e8 01             	sub    $0x1,%eax
40e882:	75 1a                	jne    0x40e89e
40e884:	21 16                	and    %edx,(%esi)
40e886:	eb 16                	jmp    0x40e89e
40e888:	8b 06                	mov    (%esi),%eax
40e88a:	23 c2                	and    %edx,%eax
40e88c:	0d 00 02 00 00       	or     $0x200,%eax
40e891:	eb 09                	jmp    0x40e89c
40e893:	8b 06                	mov    (%esi),%eax
40e895:	23 c2                	and    %edx,%eax
40e897:	0d 00 03 00 00       	or     $0x300,%eax
40e89c:	89 06                	mov    %eax,(%esi)
40e89e:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40e8a2:	5e                   	pop    %esi
40e8a3:	74 07                	je     0x40e8ac
40e8a5:	d9 41 50             	flds   0x50(%ecx)
40e8a8:	d9 1b                	fstps  (%ebx)
40e8aa:	eb 05                	jmp    0x40e8b1
40e8ac:	dd 41 50             	fldl   0x50(%ecx)
40e8af:	dd 1b                	fstpl  (%ebx)
40e8b1:	5f                   	pop    %edi
40e8b2:	5b                   	pop    %ebx
40e8b3:	5d                   	pop    %ebp
40e8b4:	c3                   	ret
40e8b5:	8b ff                	mov    %edi,%edi
40e8b7:	55                   	push   %ebp
40e8b8:	8b ec                	mov    %esp,%ebp
40e8ba:	8b 45 08             	mov    0x8(%ebp),%eax
40e8bd:	83 e8 01             	sub    $0x1,%eax
40e8c0:	74 17                	je     0x40e8d9
40e8c2:	83 e8 01             	sub    $0x1,%eax
40e8c5:	74 05                	je     0x40e8cc
40e8c7:	83 e8 01             	sub    $0x1,%eax
40e8ca:	75 18                	jne    0x40e8e4
40e8cc:	e8 7f 90 ff ff       	call   0x407950
40e8d1:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40e8d7:	5d                   	pop    %ebp
40e8d8:	c3                   	ret
40e8d9:	e8 72 90 ff ff       	call   0x407950
40e8de:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
40e8e4:	5d                   	pop    %ebp
40e8e5:	c3                   	ret
40e8e6:	8b ff                	mov    %edi,%edi
40e8e8:	55                   	push   %ebp
40e8e9:	8b ec                	mov    %esp,%ebp
40e8eb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e8ee:	83 ec 20             	sub    $0x20,%esp
40e8f1:	33 c0                	xor    %eax,%eax
40e8f3:	39 0c c5 68 3b 41 00 	cmp    %ecx,0x413b68(,%eax,8)
40e8fa:	74 27                	je     0x40e923
40e8fc:	40                   	inc    %eax
40e8fd:	83 f8 1d             	cmp    $0x1d,%eax
40e900:	7c f1                	jl     0x40e8f3
40e902:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40e906:	68 ff ff 00 00       	push   $0xffff
40e90b:	ff 75 28             	push   0x28(%ebp)
40e90e:	e8 0f dd ff ff       	call   0x40c622
40e913:	ff 75 08             	push   0x8(%ebp)
40e916:	e8 9a ff ff ff       	call   0x40e8b5
40e91b:	dd 45 20             	fldl   0x20(%ebp)
40e91e:	83 c4 0c             	add    $0xc,%esp
40e921:	c9                   	leave
40e922:	c3                   	ret
40e923:	8b 04 c5 6c 3b 41 00 	mov    0x413b6c(,%eax,8),%eax
40e92a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e92d:	85 c0                	test   %eax,%eax
40e92f:	74 d5                	je     0x40e906
40e931:	8b 45 10             	mov    0x10(%ebp),%eax
40e934:	89 45 e8             	mov    %eax,-0x18(%ebp)
40e937:	8b 45 14             	mov    0x14(%ebp),%eax
40e93a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e93d:	8b 45 18             	mov    0x18(%ebp),%eax
40e940:	89 45 f0             	mov    %eax,-0x10(%ebp)
40e943:	8b 45 1c             	mov    0x1c(%ebp),%eax
40e946:	56                   	push   %esi
40e947:	8b 75 08             	mov    0x8(%ebp),%esi
40e94a:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e94d:	8b 45 20             	mov    0x20(%ebp),%eax
40e950:	68 ff ff 00 00       	push   $0xffff
40e955:	ff 75 28             	push   0x28(%ebp)
40e958:	89 45 f8             	mov    %eax,-0x8(%ebp)
40e95b:	8b 45 24             	mov    0x24(%ebp),%eax
40e95e:	89 75 e0             	mov    %esi,-0x20(%ebp)
40e961:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e964:	e8 b9 dc ff ff       	call   0x40c622
40e969:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e96c:	50                   	push   %eax
40e96d:	e8 87 76 ff ff       	call   0x405ff9
40e972:	83 c4 0c             	add    $0xc,%esp
40e975:	85 c0                	test   %eax,%eax
40e977:	75 07                	jne    0x40e980
40e979:	56                   	push   %esi
40e97a:	e8 36 ff ff ff       	call   0x40e8b5
40e97f:	59                   	pop    %ecx
40e980:	dd 45 f8             	fldl   -0x8(%ebp)
40e983:	5e                   	pop    %esi
40e984:	c9                   	leave
40e985:	c3                   	ret
40e986:	8b ff                	mov    %edi,%edi
40e988:	55                   	push   %ebp
40e989:	8b ec                	mov    %esp,%ebp
40e98b:	dd 45 08             	fldl   0x8(%ebp)
40e98e:	d9 ee                	fldz
40e990:	dd e1                	fucom  %st(1)
40e992:	df e0                	fnstsw %ax
40e994:	56                   	push   %esi
40e995:	f6 c4 44             	test   $0x44,%ah
40e998:	7a 09                	jp     0x40e9a3
40e99a:	dd d9                	fstp   %st(1)
40e99c:	33 f6                	xor    %esi,%esi
40e99e:	e9 ad 00 00 00       	jmp    0x40ea50
40e9a3:	57                   	push   %edi
40e9a4:	66 8b 7d 0e          	mov    0xe(%ebp),%di
40e9a8:	0f b7 c7             	movzwl %di,%eax
40e9ab:	a9 f0 7f 00 00       	test   $0x7ff0,%eax
40e9b0:	75 7a                	jne    0x40ea2c
40e9b2:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e9b5:	8b 55 08             	mov    0x8(%ebp),%edx
40e9b8:	f7 c1 ff ff 0f 00    	test   $0xfffff,%ecx
40e9be:	75 04                	jne    0x40e9c4
40e9c0:	85 d2                	test   %edx,%edx
40e9c2:	74 68                	je     0x40ea2c
40e9c4:	de d9                	fcompp
40e9c6:	be 03 fc ff ff       	mov    $0xfffffc03,%esi
40e9cb:	df e0                	fnstsw %ax
40e9cd:	53                   	push   %ebx
40e9ce:	33 db                	xor    %ebx,%ebx
40e9d0:	f6 c4 41             	test   $0x41,%ah
40e9d3:	75 01                	jne    0x40e9d6
40e9d5:	43                   	inc    %ebx
40e9d6:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
40e9da:	75 1f                	jne    0x40e9fb
40e9dc:	03 c9                	add    %ecx,%ecx
40e9de:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40e9e1:	85 d2                	test   %edx,%edx
40e9e3:	79 06                	jns    0x40e9eb
40e9e5:	83 c9 01             	or     $0x1,%ecx
40e9e8:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40e9eb:	03 d2                	add    %edx,%edx
40e9ed:	4e                   	dec    %esi
40e9ee:	f6 45 0e 10          	testb  $0x10,0xe(%ebp)
40e9f2:	74 e8                	je     0x40e9dc
40e9f4:	66 8b 7d 0e          	mov    0xe(%ebp),%di
40e9f8:	89 55 08             	mov    %edx,0x8(%ebp)
40e9fb:	b8 ef ff 00 00       	mov    $0xffef,%eax
40ea00:	66 23 f8             	and    %ax,%di
40ea03:	85 db                	test   %ebx,%ebx
40ea05:	0f b7 c7             	movzwl %di,%eax
40ea08:	66 89 7d 0e          	mov    %di,0xe(%ebp)
40ea0c:	5b                   	pop    %ebx
40ea0d:	74 09                	je     0x40ea18
40ea0f:	0d 00 80 00 00       	or     $0x8000,%eax
40ea14:	66 89 45 0e          	mov    %ax,0xe(%ebp)
40ea18:	dd 45 08             	fldl   0x8(%ebp)
40ea1b:	6a 00                	push   $0x0
40ea1d:	51                   	push   %ecx
40ea1e:	51                   	push   %ecx
40ea1f:	dd 1c 24             	fstpl  (%esp)
40ea22:	e8 31 00 00 00       	call   0x40ea58
40ea27:	83 c4 0c             	add    $0xc,%esp
40ea2a:	eb 23                	jmp    0x40ea4f
40ea2c:	6a 00                	push   $0x0
40ea2e:	51                   	push   %ecx
40ea2f:	dd d8                	fstp   %st(0)
40ea31:	51                   	push   %ecx
40ea32:	dd 1c 24             	fstpl  (%esp)
40ea35:	e8 1e 00 00 00       	call   0x40ea58
40ea3a:	0f b7 f7             	movzwl %di,%esi
40ea3d:	83 c4 0c             	add    $0xc,%esp
40ea40:	c1 ee 04             	shr    $0x4,%esi
40ea43:	81 e6 ff 07 00 00    	and    $0x7ff,%esi
40ea49:	81 ee fe 03 00 00    	sub    $0x3fe,%esi
40ea4f:	5f                   	pop    %edi
40ea50:	8b 45 10             	mov    0x10(%ebp),%eax
40ea53:	89 30                	mov    %esi,(%eax)
40ea55:	5e                   	pop    %esi
40ea56:	5d                   	pop    %ebp
40ea57:	c3                   	ret
40ea58:	8b ff                	mov    %edi,%edi
40ea5a:	55                   	push   %ebp
40ea5b:	8b ec                	mov    %esp,%ebp
40ea5d:	51                   	push   %ecx
40ea5e:	51                   	push   %ecx
40ea5f:	8b 4d 10             	mov    0x10(%ebp),%ecx
40ea62:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
40ea66:	dd 45 08             	fldl   0x8(%ebp)
40ea69:	25 0f 80 00 00       	and    $0x800f,%eax
40ea6e:	dd 5d f8             	fstpl  -0x8(%ebp)
40ea71:	8d 89 fe 03 00 00    	lea    0x3fe(%ecx),%ecx
40ea77:	c1 e1 04             	shl    $0x4,%ecx
40ea7a:	0b c8                	or     %eax,%ecx
40ea7c:	66 89 4d fe          	mov    %cx,-0x2(%ebp)
40ea80:	dd 45 f8             	fldl   -0x8(%ebp)
40ea83:	c9                   	leave
40ea84:	c3                   	ret
40ea85:	8b ff                	mov    %edi,%edi
40ea87:	55                   	push   %ebp
40ea88:	8b ec                	mov    %esp,%ebp
40ea8a:	81 7d 0c 00 00 f0 7f 	cmpl   $0x7ff00000,0xc(%ebp)
40ea91:	8b 45 08             	mov    0x8(%ebp),%eax
40ea94:	75 07                	jne    0x40ea9d
40ea96:	85 c0                	test   %eax,%eax
40ea98:	75 15                	jne    0x40eaaf
40ea9a:	40                   	inc    %eax
40ea9b:	5d                   	pop    %ebp
40ea9c:	c3                   	ret
40ea9d:	81 7d 0c 00 00 f0 ff 	cmpl   $0xfff00000,0xc(%ebp)
40eaa4:	75 09                	jne    0x40eaaf
40eaa6:	85 c0                	test   %eax,%eax
40eaa8:	75 05                	jne    0x40eaaf
40eaaa:	6a 02                	push   $0x2
40eaac:	58                   	pop    %eax
40eaad:	5d                   	pop    %ebp
40eaae:	c3                   	ret
40eaaf:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
40eab3:	ba f8 7f 00 00       	mov    $0x7ff8,%edx
40eab8:	66 23 ca             	and    %dx,%cx
40eabb:	66 3b ca             	cmp    %dx,%cx
40eabe:	75 04                	jne    0x40eac4
40eac0:	6a 03                	push   $0x3
40eac2:	eb e8                	jmp    0x40eaac
40eac4:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
40eac9:	66 3b ca             	cmp    %dx,%cx
40eacc:	75 16                	jne    0x40eae4
40eace:	f7 45 0c ff ff 07 00 	testl  $0x7ffff,0xc(%ebp)
40ead5:	75 09                	jne    0x40eae0
40ead7:	f7 d8                	neg    %eax
40ead9:	1b c0                	sbb    %eax,%eax
40eadb:	83 e0 04             	and    $0x4,%eax
40eade:	5d                   	pop    %ebp
40eadf:	c3                   	ret
40eae0:	6a 04                	push   $0x4
40eae2:	eb c8                	jmp    0x40eaac
40eae4:	33 c0                	xor    %eax,%eax
40eae6:	5d                   	pop    %ebp
40eae7:	c3                   	ret
40eae8:	8b ff                	mov    %edi,%edi
40eaea:	55                   	push   %ebp
40eaeb:	8b ec                	mov    %esp,%ebp
40eaed:	66 8b 4d 0e          	mov    0xe(%ebp),%cx
40eaf1:	ba f0 7f 00 00       	mov    $0x7ff0,%edx
40eaf6:	66 8b c1             	mov    %cx,%ax
40eaf9:	66 23 c2             	and    %dx,%ax
40eafc:	66 3b c2             	cmp    %dx,%ax
40eaff:	75 33                	jne    0x40eb34
40eb01:	dd 45 08             	fldl   0x8(%ebp)
40eb04:	51                   	push   %ecx
40eb05:	51                   	push   %ecx
40eb06:	dd 1c 24             	fstpl  (%esp)
40eb09:	e8 77 ff ff ff       	call   0x40ea85
40eb0e:	59                   	pop    %ecx
40eb0f:	59                   	pop    %ecx
40eb10:	83 e8 01             	sub    $0x1,%eax
40eb13:	74 18                	je     0x40eb2d
40eb15:	83 e8 01             	sub    $0x1,%eax
40eb18:	74 0e                	je     0x40eb28
40eb1a:	83 e8 01             	sub    $0x1,%eax
40eb1d:	74 05                	je     0x40eb24
40eb1f:	33 c0                	xor    %eax,%eax
40eb21:	40                   	inc    %eax
40eb22:	5d                   	pop    %ebp
40eb23:	c3                   	ret
40eb24:	6a 02                	push   $0x2
40eb26:	eb 02                	jmp    0x40eb2a
40eb28:	6a 04                	push   $0x4
40eb2a:	58                   	pop    %eax
40eb2b:	5d                   	pop    %ebp
40eb2c:	c3                   	ret
40eb2d:	b8 00 02 00 00       	mov    $0x200,%eax
40eb32:	5d                   	pop    %ebp
40eb33:	c3                   	ret
40eb34:	0f b7 c9             	movzwl %cx,%ecx
40eb37:	81 e1 00 80 00 00    	and    $0x8000,%ecx
40eb3d:	66 85 c0             	test   %ax,%ax
40eb40:	75 1e                	jne    0x40eb60
40eb42:	f7 45 0c ff ff 0f 00 	testl  $0xfffff,0xc(%ebp)
40eb49:	75 06                	jne    0x40eb51
40eb4b:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40eb4f:	74 0f                	je     0x40eb60
40eb51:	f7 d9                	neg    %ecx
40eb53:	1b c9                	sbb    %ecx,%ecx
40eb55:	83 e1 90             	and    $0xffffff90,%ecx
40eb58:	8d 81 80 00 00 00    	lea    0x80(%ecx),%eax
40eb5e:	5d                   	pop    %ebp
40eb5f:	c3                   	ret
40eb60:	dd 45 08             	fldl   0x8(%ebp)
40eb63:	d9 ee                	fldz
40eb65:	da e9                	fucompp
40eb67:	df e0                	fnstsw %ax
40eb69:	f6 c4 44             	test   $0x44,%ah
40eb6c:	7a 0c                	jp     0x40eb7a
40eb6e:	f7 d9                	neg    %ecx
40eb70:	1b c9                	sbb    %ecx,%ecx