4159db:	66 89 4d f8          	mov    %cx,-0x8(%ebp)
4159df:	d9 6d f8             	fldcw  -0x8(%ebp)
4159e2:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
4159e6:	c9                   	leave
4159e7:	c3                   	ret
4159e8:	8b ff                	mov    %edi,%edi
4159ea:	55                   	push   %ebp
4159eb:	8b ec                	mov    %esp,%ebp
4159ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
4159f0:	83 ec 0c             	sub    $0xc,%esp
4159f3:	f6 c1 01             	test   $0x1,%cl
4159f6:	74 0a                	je     0x415a02
4159f8:	db 2d 08 84 42 00    	fldt   0x428408
4159fe:	db 5d fc             	fistpl -0x4(%ebp)
415a01:	9b                   	fwait
415a02:	f6 c1 08             	test   $0x8,%cl
415a05:	74 10                	je     0x415a17
415a07:	9b df e0             	fstsw  %ax
415a0a:	db 2d 08 84 42 00    	fldt   0x428408
415a10:	dd 5d f4             	fstpl  -0xc(%ebp)
415a13:	9b 9b df e0          	fstsw  %ax
415a17:	f6 c1 10             	test   $0x10,%cl
415a1a:	74 0a                	je     0x415a26
415a1c:	db 2d 14 84 42 00    	fldt   0x428414
415a22:	dd 5d f4             	fstpl  -0xc(%ebp)
415a25:	9b                   	fwait
415a26:	f6 c1 04             	test   $0x4,%cl
415a29:	74 09                	je     0x415a34
415a2b:	d9 ee                	fldz
415a2d:	d9 e8                	fld1
415a2f:	de f1                	fdivp  %st,%st(1)
415a31:	dd d8                	fstp   %st(0)
415a33:	9b                   	fwait
415a34:	f6 c1 20             	test   $0x20,%cl
415a37:	74 06                	je     0x415a3f
415a39:	d9 eb                	fldpi
415a3b:	dd 5d f4             	fstpl  -0xc(%ebp)
415a3e:	9b                   	fwait
415a3f:	c9                   	leave
415a40:	c3                   	ret
415a41:	8b ff                	mov    %edi,%edi
415a43:	55                   	push   %ebp
415a44:	8b ec                	mov    %esp,%ebp
415a46:	51                   	push   %ecx
415a47:	9b dd 7d fc          	fstsw  -0x4(%ebp)
415a4b:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
415a4f:	c9                   	leave
415a50:	c3                   	ret
415a51:	8b ff                	mov    %edi,%edi
415a53:	55                   	push   %ebp
415a54:	8b ec                	mov    %esp,%ebp
415a56:	b8 ff ff 00 00       	mov    $0xffff,%eax
415a5b:	83 ec 14             	sub    $0x14,%esp
415a5e:	66 39 45 08          	cmp    %ax,0x8(%ebp)
415a62:	0f 84 89 00 00 00    	je     0x415af1
415a68:	ff 75 0c             	push   0xc(%ebp)
415a6b:	8d 4d ec             	lea    -0x14(%ebp),%ecx
415a6e:	e8 0b 62 ff ff       	call   0x40bc7e
415a73:	66 8b 4d 08          	mov    0x8(%ebp),%cx
415a77:	ba 00 01 00 00       	mov    $0x100,%edx
415a7c:	66 3b ca             	cmp    %dx,%cx
415a7f:	73 24                	jae    0x415aa5
415a81:	0f b6 d1             	movzbl %cl,%edx
415a84:	f6 04 55 e2 66 42 00 	testb  $0x1,0x4266e2(,%edx,2)
415a8b:	01
415a8c:	74 0f                	je     0x415a9d
415a8e:	8b 45 f0             	mov    -0x10(%ebp),%eax
415a91:	8b 80 94 00 00 00    	mov    0x94(%eax),%eax
415a97:	0f b6 04 10          	movzbl (%eax,%edx,1),%eax
415a9b:	eb 03                	jmp    0x415aa0
415a9d:	0f b6 c1             	movzbl %cl,%eax
415aa0:	0f b7 c0             	movzwl %ax,%eax
415aa3:	eb 10                	jmp    0x415ab5
415aa5:	8b 45 f0             	mov    -0x10(%ebp),%eax
415aa8:	8b 80 a8 00 00 00    	mov    0xa8(%eax),%eax
415aae:	85 c0                	test   %eax,%eax
415ab0:	75 08                	jne    0x415aba
415ab2:	0f b7 c1             	movzwl %cx,%eax
415ab5:	0f b7 c0             	movzwl %ax,%eax
415ab8:	eb 1e                	jmp    0x415ad8
415aba:	6a 01                	push   $0x1
415abc:	8d 4d fc             	lea    -0x4(%ebp),%ecx
415abf:	51                   	push   %ecx
415ac0:	6a 01                	push   $0x1
415ac2:	8d 4d 08             	lea    0x8(%ebp),%ecx
415ac5:	51                   	push   %ecx
415ac6:	52                   	push   %edx
415ac7:	50                   	push   %eax
415ac8:	e8 81 ab 00 00       	call   0x42064e
415acd:	83 c4 18             	add    $0x18,%esp
415ad0:	85 c0                	test   %eax,%eax
415ad2:	75 09                	jne    0x415add
415ad4:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
415ad8:	0f b7 c0             	movzwl %ax,%eax
415adb:	eb 04                	jmp    0x415ae1
415add:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
415ae1:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
415ae5:	74 0a                	je     0x415af1
415ae7:	8b 4d ec             	mov    -0x14(%ebp),%ecx
415aea:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
415af1:	c9                   	leave
415af2:	c3                   	ret
415af3:	6a 0c                	push   $0xc
415af5:	68 58 18 43 00       	push   $0x431858
415afa:	e8 c1 24 ff ff       	call   0x407fc0
415aff:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
415b03:	8b 45 08             	mov    0x8(%ebp),%eax
415b06:	ff 30                	push   (%eax)
415b08:	e8 6d 5a 00 00       	call   0x41b57a
415b0d:	59                   	pop    %ecx
415b0e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
415b12:	8b 45 0c             	mov    0xc(%ebp),%eax
415b15:	8b 00                	mov    (%eax),%eax
415b17:	8b 30                	mov    (%eax),%esi
415b19:	8b d6                	mov    %esi,%edx
415b1b:	c1 fa 06             	sar    $0x6,%edx
415b1e:	8b c6                	mov    %esi,%eax
415b20:	83 e0 3f             	and    $0x3f,%eax
415b23:	6b c8 38             	imul   $0x38,%eax,%ecx
415b26:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
415b2d:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
415b32:	74 0b                	je     0x415b3f
415b34:	56                   	push   %esi
415b35:	e8 d2 00 00 00       	call   0x415c0c
415b3a:	59                   	pop    %ecx
415b3b:	8b f0                	mov    %eax,%esi
415b3d:	eb 0e                	jmp    0x415b4d
415b3f:	e8 b7 92 ff ff       	call   0x40edfb
415b44:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
415b4a:	83 ce ff             	or     $0xffffffff,%esi
415b4d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
415b50:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
415b57:	e8 17 00 00 00       	call   0x415b73
415b5c:	8b c6                	mov    %esi,%eax
415b5e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415b61:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415b68:	59                   	pop    %ecx
415b69:	5f                   	pop    %edi
415b6a:	5e                   	pop    %esi
415b6b:	5b                   	pop    %ebx
415b6c:	c9                   	leave
415b6d:	c2 0c 00             	ret    $0xc
415b70:	8b 75 e4             	mov    -0x1c(%ebp),%esi
415b73:	8b 45 10             	mov    0x10(%ebp),%eax
415b76:	ff 30                	push   (%eax)
415b78:	e8 b2 5a 00 00       	call   0x41b62f
415b7d:	59                   	pop    %ecx
415b7e:	c3                   	ret
415b7f:	8b ff                	mov    %edi,%edi
415b81:	55                   	push   %ebp
415b82:	8b ec                	mov    %esp,%ebp
415b84:	83 ec 10             	sub    $0x10,%esp
415b87:	56                   	push   %esi
415b88:	8b 75 08             	mov    0x8(%ebp),%esi
415b8b:	83 fe fe             	cmp    $0xfffffffe,%esi
415b8e:	75 15                	jne    0x415ba5
415b90:	e8 53 92 ff ff       	call   0x40ede8
415b95:	83 20 00             	andl   $0x0,(%eax)
415b98:	e8 5e 92 ff ff       	call   0x40edfb
415b9d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
415ba3:	eb 61                	jmp    0x415c06
415ba5:	85 f6                	test   %esi,%esi
415ba7:	78 45                	js     0x415bee
415ba9:	3b 35 c0 4c 43 00    	cmp    0x434cc0,%esi
415baf:	73 3d                	jae    0x415bee
415bb1:	8b c6                	mov    %esi,%eax
415bb3:	8b d6                	mov    %esi,%edx
415bb5:	83 e0 3f             	and    $0x3f,%eax
415bb8:	c1 fa 06             	sar    $0x6,%edx
415bbb:	6b c8 38             	imul   $0x38,%eax,%ecx
415bbe:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
415bc5:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
415bca:	74 22                	je     0x415bee
415bcc:	8d 45 08             	lea    0x8(%ebp),%eax
415bcf:	89 75 f8             	mov    %esi,-0x8(%ebp)
415bd2:	89 45 f4             	mov    %eax,-0xc(%ebp)
415bd5:	8d 4d ff             	lea    -0x1(%ebp),%ecx
415bd8:	8d 45 f8             	lea    -0x8(%ebp),%eax
415bdb:	89 75 f0             	mov    %esi,-0x10(%ebp)
415bde:	50                   	push   %eax
415bdf:	8d 45 f4             	lea    -0xc(%ebp),%eax
415be2:	50                   	push   %eax
415be3:	8d 45 f0             	lea    -0x10(%ebp),%eax
415be6:	50                   	push   %eax
415be7:	e8 07 ff ff ff       	call   0x415af3
415bec:	eb 1b                	jmp    0x415c09
415bee:	e8 f5 91 ff ff       	call   0x40ede8
415bf3:	83 20 00             	andl   $0x0,(%eax)
415bf6:	e8 00 92 ff ff       	call   0x40edfb
415bfb:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
415c01:	e8 7b 74 ff ff       	call   0x40d081
415c06:	83 c8 ff             	or     $0xffffffff,%eax
415c09:	5e                   	pop    %esi
415c0a:	c9                   	leave
415c0b:	c3                   	ret
415c0c:	8b ff                	mov    %edi,%edi
415c0e:	55                   	push   %ebp
415c0f:	8b ec                	mov    %esp,%ebp
415c11:	56                   	push   %esi
415c12:	57                   	push   %edi
415c13:	8b 7d 08             	mov    0x8(%ebp),%edi
415c16:	57                   	push   %edi
415c17:	e8 da 5b 00 00       	call   0x41b7f6
415c1c:	59                   	pop    %ecx
415c1d:	83 f8 ff             	cmp    $0xffffffff,%eax
415c20:	75 04                	jne    0x415c26
415c22:	33 f6                	xor    %esi,%esi
415c24:	eb 4e                	jmp    0x415c74
415c26:	a1 c0 4a 43 00       	mov    0x434ac0,%eax
415c2b:	83 ff 01             	cmp    $0x1,%edi
415c2e:	75 09                	jne    0x415c39
415c30:	f6 80 98 00 00 00 01 	testb  $0x1,0x98(%eax)
415c37:	75 0b                	jne    0x415c44
415c39:	83 ff 02             	cmp    $0x2,%edi
415c3c:	75 1c                	jne    0x415c5a
415c3e:	f6 40 60 01          	testb  $0x1,0x60(%eax)
415c42:	74 16                	je     0x415c5a
415c44:	6a 02                	push   $0x2
415c46:	e8 ab 5b 00 00       	call   0x41b7f6
415c4b:	6a 01                	push   $0x1
415c4d:	8b f0                	mov    %eax,%esi
415c4f:	e8 a2 5b 00 00       	call   0x41b7f6
415c54:	59                   	pop    %ecx
415c55:	59                   	pop    %ecx
415c56:	3b c6                	cmp    %esi,%eax
415c58:	74 c8                	je     0x415c22
415c5a:	57                   	push   %edi
415c5b:	e8 96 5b 00 00       	call   0x41b7f6
415c60:	59                   	pop    %ecx
415c61:	50                   	push   %eax
415c62:	ff 15 f0 40 42 00    	call   *0x4240f0
415c68:	85 c0                	test   %eax,%eax
415c6a:	75 b6                	jne    0x415c22
415c6c:	ff 15 98 40 42 00    	call   *0x424098
415c72:	8b f0                	mov    %eax,%esi
415c74:	57                   	push   %edi
415c75:	e8 eb 5a 00 00       	call   0x41b765
415c7a:	59                   	pop    %ecx
415c7b:	8b cf                	mov    %edi,%ecx
415c7d:	83 e7 3f             	and    $0x3f,%edi
415c80:	c1 f9 06             	sar    $0x6,%ecx
415c83:	6b d7 38             	imul   $0x38,%edi,%edx
415c86:	8b 0c 8d c0 4a 43 00 	mov    0x434ac0(,%ecx,4),%ecx
415c8d:	c6 44 11 28 00       	movb   $0x0,0x28(%ecx,%edx,1)
415c92:	85 f6                	test   %esi,%esi
415c94:	74 0c                	je     0x415ca2
415c96:	56                   	push   %esi
415c97:	e8 29 91 ff ff       	call   0x40edc5
415c9c:	59                   	pop    %ecx
415c9d:	83 c8 ff             	or     $0xffffffff,%eax
415ca0:	eb 02                	jmp    0x415ca4
415ca2:	33 c0                	xor    %eax,%eax
415ca4:	5f                   	pop    %edi
415ca5:	5e                   	pop    %esi
415ca6:	5d                   	pop    %ebp
415ca7:	c3                   	ret
415ca8:	8b ff                	mov    %edi,%edi
415caa:	55                   	push   %ebp
415cab:	8b ec                	mov    %esp,%ebp
415cad:	8b 45 08             	mov    0x8(%ebp),%eax
415cb0:	33 c9                	xor    %ecx,%ecx
415cb2:	89 08                	mov    %ecx,(%eax)
415cb4:	8b 45 08             	mov    0x8(%ebp),%eax
415cb7:	89 48 04             	mov    %ecx,0x4(%eax)
415cba:	8b 45 08             	mov    0x8(%ebp),%eax
415cbd:	89 48 08             	mov    %ecx,0x8(%eax)
415cc0:	8b 45 08             	mov    0x8(%ebp),%eax
415cc3:	83 48 10 ff          	orl    $0xffffffff,0x10(%eax)
415cc7:	8b 45 08             	mov    0x8(%ebp),%eax
415cca:	89 48 14             	mov    %ecx,0x14(%eax)
415ccd:	8b 45 08             	mov    0x8(%ebp),%eax
415cd0:	89 48 18             	mov    %ecx,0x18(%eax)
415cd3:	8b 45 08             	mov    0x8(%ebp),%eax
415cd6:	89 48 1c             	mov    %ecx,0x1c(%eax)
415cd9:	8b 45 08             	mov    0x8(%ebp),%eax
415cdc:	83 c0 0c             	add    $0xc,%eax
415cdf:	87 08                	xchg   %ecx,(%eax)
415ce1:	5d                   	pop    %ebp
415ce2:	c3                   	ret
415ce3:	6a 0c                	push   $0xc
415ce5:	68 78 18 43 00       	push   $0x431878
415cea:	e8 d1 22 ff ff       	call   0x407fc0
415cef:	33 f6                	xor    %esi,%esi
415cf1:	89 75 e4             	mov    %esi,-0x1c(%ebp)
415cf4:	8b 45 08             	mov    0x8(%ebp),%eax
415cf7:	ff 30                	push   (%eax)
415cf9:	e8 7c 58 00 00       	call   0x41b57a
415cfe:	59                   	pop    %ecx
415cff:	89 75 fc             	mov    %esi,-0x4(%ebp)
415d02:	8b 45 0c             	mov    0xc(%ebp),%eax
415d05:	8b 00                	mov    (%eax),%eax
415d07:	8b 38                	mov    (%eax),%edi
415d09:	8b d7                	mov    %edi,%edx
415d0b:	c1 fa 06             	sar    $0x6,%edx
415d0e:	8b c7                	mov    %edi,%eax
415d10:	83 e0 3f             	and    $0x3f,%eax
415d13:	6b c8 38             	imul   $0x38,%eax,%ecx
415d16:	8b 04 95 c0 4a 43 00 	mov    0x434ac0(,%edx,4),%eax
415d1d:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
415d22:	74 21                	je     0x415d45
415d24:	57                   	push   %edi
415d25:	e8 cc 5a 00 00       	call   0x41b7f6
415d2a:	59                   	pop    %ecx
415d2b:	50                   	push   %eax
415d2c:	ff 15 f4 40 42 00    	call   *0x4240f4
415d32:	85 c0                	test   %eax,%eax
415d34:	75 1d                	jne    0x415d53
415d36:	e8 ad 90 ff ff       	call   0x40ede8
415d3b:	8b f0                	mov    %eax,%esi
415d3d:	ff 15 98 40 42 00    	call   *0x424098
415d43:	89 06                	mov    %eax,(%esi)
415d45:	e8 b1 90 ff ff       	call   0x40edfb
415d4a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
415d50:	83 ce ff             	or     $0xffffffff,%esi
415d53:	89 75 e4             	mov    %esi,-0x1c(%ebp)
415d56:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
415d5d:	e8 17 00 00 00       	call   0x415d79
415d62:	8b c6                	mov    %esi,%eax
415d64:	8b 4d f0             	mov    -0x10(%ebp),%ecx
415d67:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
415d6e:	59                   	pop    %ecx
415d6f:	5f                   	pop    %edi
415d70:	5e                   	pop    %esi
415d71:	5b                   	pop    %ebx
415d72:	c9                   	leave
415d73:	c2 0c 00             	ret    $0xc
415d76:	8b 75 e4             	mov    -0x1c(%ebp),%esi
415d79:	8b 4d 10             	mov    0x10(%ebp),%ecx
415d7c:	ff 31                	push   (%ecx)
415d7e:	e8 ac 58 00 00       	call   0x41b62f
415d83:	59                   	pop    %ecx
415d84:	c3                   	ret
415d85:	8b ff                	mov    %edi,%edi
415d87:	55                   	push   %ebp
415d88:	8b ec                	mov    %esp,%ebp
415d8a:	83 ec 10             	sub    $0x10,%esp
415d8d:	56                   	push   %esi
415d8e:	8b 75 08             	mov    0x8(%ebp),%esi
415d91:	83 fe fe             	cmp    $0xfffffffe,%esi
415d94:	75 0d                	jne    0x415da3
415d96:	e8 60 90 ff ff       	call   0x40edfb
415d9b:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
415da1:	eb 59                	jmp    0x415dfc
415da3:	85 f6                	test   %esi,%esi
415da5:	78 45                	js     0x415dec
415da7:	3b 35 c0 4c 43 00    	cmp    0x434cc0,%esi
415dad:	73 3d                	jae    0x415dec
415daf:	8b c6                	mov    %esi,%eax
415db1:	8b d6                	mov    %esi,%edx
415db3:	83 e0 3f             	and    $0x3f,%eax