494778:	57                   	push   %edi
494779:	e8 a9 55 ff ff       	call   0x489d27
49477e:	83 c4 0c             	add    $0xc,%esp
494781:	85 c0                	test   %eax,%eax
494783:	75 47                	jne    0x4947cc
494785:	8b 4b 08             	mov    0x8(%ebx),%ecx
494788:	83 f9 10             	cmp    $0x10,%ecx
49478b:	74 10                	je     0x49479d
49478d:	83 f9 16             	cmp    $0x16,%ecx
494790:	74 0b                	je     0x49479d
494792:	83 f9 1d             	cmp    $0x1d,%ecx
494795:	74 06                	je     0x49479d
494797:	83 65 c0 fe          	andl   $0xfffffffe,-0x40(%ebp)
49479b:	eb 12                	jmp    0x4947af
49479d:	8b 45 c0             	mov    -0x40(%ebp),%eax
4947a0:	dd 46 10             	fldl   0x10(%esi)
4947a3:	83 e0 e3             	and    $0xffffffe3,%eax
4947a6:	83 c8 03             	or     $0x3,%eax
4947a9:	dd 5d b0             	fstpl  -0x50(%ebp)
4947ac:	89 45 c0             	mov    %eax,-0x40(%ebp)
4947af:	8d 46 18             	lea    0x18(%esi),%eax
4947b2:	50                   	push   %eax
4947b3:	8d 46 08             	lea    0x8(%esi),%eax
4947b6:	50                   	push   %eax
4947b7:	51                   	push   %ecx
4947b8:	57                   	push   %edi
4947b9:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
4947bf:	50                   	push   %eax
4947c0:	8d 45 80             	lea    -0x80(%ebp),%eax
4947c3:	50                   	push   %eax
4947c4:	e8 eb 57 ff ff       	call   0x489fb4
4947c9:	83 c4 18             	add    $0x18,%esp
4947cc:	68 ff ff 00 00       	push   $0xffff
4947d1:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
4947d7:	e8 4e 5c ff ff       	call   0x48a42a
4947dc:	83 3e 08             	cmpl   $0x8,(%esi)
4947df:	59                   	pop    %ecx
4947e0:	59                   	pop    %ecx
4947e1:	74 14                	je     0x4947f7
4947e3:	e8 5d e6 fe ff       	call   0x482e45
4947e8:	84 c0                	test   %al,%al
4947ea:	74 0b                	je     0x4947f7
4947ec:	56                   	push   %esi
4947ed:	e8 8e e6 fe ff       	call   0x482e80
4947f2:	59                   	pop    %ecx
4947f3:	85 c0                	test   %eax,%eax
4947f5:	75 08                	jne    0x4947ff
4947f7:	ff 36                	push   (%esi)
4947f9:	e8 ca 5a ff ff       	call   0x48a2c8
4947fe:	59                   	pop    %ecx
4947ff:	8b 4d fc             	mov    -0x4(%ebp),%ecx
494802:	5f                   	pop    %edi
494803:	33 cd                	xor    %ebp,%ecx
494805:	5e                   	pop    %esi
494806:	e8 bf 51 fd ff       	call   0x4699ca
49480b:	8b e5                	mov    %ebp,%esp
49480d:	5d                   	pop    %ebp
49480e:	8b e3                	mov    %ebx,%esp
494810:	5b                   	pop    %ebx
494811:	c3                   	ret
494812:	8b ff                	mov    %edi,%edi
494814:	55                   	push   %ebp
494815:	8b ec                	mov    %esp,%ebp
494817:	51                   	push   %ecx
494818:	51                   	push   %ecx
494819:	dd 45 08             	fldl   0x8(%ebp)
49481c:	d9 fc                	frndint
49481e:	dd 5d f8             	fstpl  -0x8(%ebp)
494821:	dd 45 f8             	fldl   -0x8(%ebp)
494824:	c9                   	leave
494825:	c3                   	ret
494826:	cc                   	int3
494827:	cc                   	int3
494828:	cc                   	int3
494829:	cc                   	int3
49482a:	cc                   	int3
49482b:	cc                   	int3
49482c:	cc                   	int3
49482d:	cc                   	int3
49482e:	cc                   	int3
49482f:	cc                   	int3
494830:	8b ff                	mov    %edi,%edi
494832:	55                   	push   %ebp
494833:	8b ec                	mov    %esp,%ebp
494835:	81 ec 18 01 00 00    	sub    $0x118,%esp
49483b:	a1 14 40 4c 00       	mov    0x4c4014,%eax
494840:	33 c5                	xor    %ebp,%eax
494842:	89 45 fc             	mov    %eax,-0x4(%ebp)
494845:	8b 4d 0c             	mov    0xc(%ebp),%ecx
494848:	53                   	push   %ebx
494849:	8b 5d 14             	mov    0x14(%ebp),%ebx
49484c:	56                   	push   %esi
49484d:	8b 75 08             	mov    0x8(%ebp),%esi
494850:	89 b5 fc fe ff ff    	mov    %esi,-0x104(%ebp)
494856:	89 9d f8 fe ff ff    	mov    %ebx,-0x108(%ebp)
49485c:	57                   	push   %edi
49485d:	8b 7d 10             	mov    0x10(%ebp),%edi
494860:	89 bd 00 ff ff ff    	mov    %edi,-0x100(%ebp)
494866:	85 f6                	test   %esi,%esi
494868:	75 25                	jne    0x49488f
49486a:	85 c9                	test   %ecx,%ecx
49486c:	74 21                	je     0x49488f
49486e:	e8 c2 56 fe ff       	call   0x479f35
494873:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
494879:	e8 a3 4d fe ff       	call   0x479621
49487e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
494881:	5f                   	pop    %edi
494882:	5e                   	pop    %esi
494883:	33 cd                	xor    %ebp,%ecx
494885:	5b                   	pop    %ebx
494886:	e8 3f 51 fd ff       	call   0x4699ca
49488b:	8b e5                	mov    %ebp,%esp
49488d:	5d                   	pop    %ebp
49488e:	c3                   	ret
49488f:	85 ff                	test   %edi,%edi
494891:	74 db                	je     0x49486e
494893:	85 db                	test   %ebx,%ebx
494895:	74 d7                	je     0x49486e
494897:	c7 85 e8 fe ff ff 00 	movl   $0x0,-0x118(%ebp)
49489e:	00 00 00
4948a1:	83 f9 02             	cmp    $0x2,%ecx
4948a4:	72 d8                	jb     0x49487e
4948a6:	49                   	dec    %ecx
4948a7:	0f af cf             	imul   %edi,%ecx
4948aa:	03 ce                	add    %esi,%ecx
4948ac:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
4948b2:	8b c1                	mov    %ecx,%eax
4948b4:	33 d2                	xor    %edx,%edx
4948b6:	2b c6                	sub    %esi,%eax
4948b8:	f7 f7                	div    %edi
4948ba:	40                   	inc    %eax
4948bb:	83 f8 08             	cmp    $0x8,%eax
4948be:	0f 87 b6 00 00 00    	ja     0x49497a
4948c4:	3b ce                	cmp    %esi,%ecx
4948c6:	0f 86 27 04 00 00    	jbe    0x494cf3
4948cc:	8d 14 37             	lea    (%edi,%esi,1),%edx
4948cf:	89 95 f0 fe ff ff    	mov    %edx,-0x110(%ebp)
4948d5:	8b c6                	mov    %esi,%eax
4948d7:	8b f2                	mov    %edx,%esi
4948d9:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
4948df:	3b f1                	cmp    %ecx,%esi
4948e1:	77 2f                	ja     0x494912
4948e3:	50                   	push   %eax
4948e4:	56                   	push   %esi
4948e5:	8b cb                	mov    %ebx,%ecx
4948e7:	ff 15 d4 e2 49 00    	call   *0x49e2d4
4948ed:	ff d3                	call   *%ebx
4948ef:	83 c4 08             	add    $0x8,%esp
4948f2:	85 c0                	test   %eax,%eax
4948f4:	7e 0a                	jle    0x494900
4948f6:	8b c6                	mov    %esi,%eax
4948f8:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
4948fe:	eb 06                	jmp    0x494906
494900:	8b 85 04 ff ff ff    	mov    -0xfc(%ebp),%eax
494906:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
49490c:	03 f7                	add    %edi,%esi
49490e:	3b f1                	cmp    %ecx,%esi
494910:	76 d1                	jbe    0x4948e3
494912:	89 bd f4 fe ff ff    	mov    %edi,-0x10c(%ebp)
494918:	8b d1                	mov    %ecx,%edx
49491a:	3b c1                	cmp    %ecx,%eax
49491c:	74 3b                	je     0x494959
49491e:	2b c1                	sub    %ecx,%eax
494920:	8b df                	mov    %edi,%ebx
494922:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
494928:	eb 06                	jmp    0x494930
49492a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
494930:	8a 0c 10             	mov    (%eax,%edx,1),%cl
494933:	8d 52 01             	lea    0x1(%edx),%edx
494936:	8b b5 04 ff ff ff    	mov    -0xfc(%ebp),%esi
49493c:	8a 42 ff             	mov    -0x1(%edx),%al
49493f:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
494943:	8b c6                	mov    %esi,%eax
494945:	88 4a ff             	mov    %cl,-0x1(%edx)
494948:	83 eb 01             	sub    $0x1,%ebx
49494b:	75 e3                	jne    0x494930
49494d:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
494953:	8b 8d 08 ff ff ff    	mov    -0xf8(%ebp),%ecx
494959:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
49495f:	2b cf                	sub    %edi,%ecx
494961:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
494967:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
49496d:	3b ce                	cmp    %esi,%ecx
49496f:	0f 87 60 ff ff ff    	ja     0x4948d5
494975:	e9 79 03 00 00       	jmp    0x494cf3
49497a:	d1 e8                	shr    $1,%eax
49497c:	8b cb                	mov    %ebx,%ecx
49497e:	0f af c7             	imul   %edi,%eax
494981:	89 85 04 ff ff ff    	mov    %eax,-0xfc(%ebp)
494987:	8d 3c 30             	lea    (%eax,%esi,1),%edi
49498a:	57                   	push   %edi
49498b:	56                   	push   %esi
49498c:	89 bd ec fe ff ff    	mov    %edi,-0x114(%ebp)
494992:	ff 15 d4 e2 49 00    	call   *0x49e2d4
494998:	ff d3                	call   *%ebx
49499a:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
4949a0:	83 c4 08             	add    $0x8,%esp
4949a3:	85 c0                	test   %eax,%eax
4949a5:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
4949ab:	7e 4d                	jle    0x4949fa
4949ad:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
4949b3:	89 bd f0 fe ff ff    	mov    %edi,-0x110(%ebp)
4949b9:	3b c7                	cmp    %edi,%eax
4949bb:	74 3d                	je     0x4949fa
4949bd:	8b 9d f4 fe ff ff    	mov    -0x10c(%ebp),%ebx
4949c3:	8b f7                	mov    %edi,%esi
4949c5:	8b bd 04 ff ff ff    	mov    -0xfc(%ebp),%edi
4949cb:	eb 03                	jmp    0x4949d0
4949cd:	8d 49 00             	lea    0x0(%ecx),%ecx
4949d0:	8a 06                	mov    (%esi),%al
4949d2:	8b d6                	mov    %esi,%edx
4949d4:	2b d7                	sub    %edi,%edx
4949d6:	8a 0a                	mov    (%edx),%cl
4949d8:	88 02                	mov    %al,(%edx)
4949da:	88 0e                	mov    %cl,(%esi)
4949dc:	46                   	inc    %esi
4949dd:	83 eb 01             	sub    $0x1,%ebx
4949e0:	75 ee                	jne    0x4949d0
4949e2:	8b bd ec fe ff ff    	mov    -0x114(%ebp),%edi
4949e8:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
4949ee:	8b b5 00 ff ff ff    	mov    -0x100(%ebp),%esi
4949f4:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
4949fa:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
494a00:	8b cb                	mov    %ebx,%ecx
494a02:	50                   	push   %eax
494a03:	ff 15 d4 e2 49 00    	call   *0x49e2d4
494a09:	ff d3                	call   *%ebx
494a0b:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
494a11:	83 c4 08             	add    $0x8,%esp
494a14:	85 c0                	test   %eax,%eax
494a16:	7e 49                	jle    0x494a61
494a18:	8b 85 fc fe ff ff    	mov    -0x104(%ebp),%eax
494a1e:	89 b5 ec fe ff ff    	mov    %esi,-0x114(%ebp)
494a24:	8b f2                	mov    %edx,%esi
494a26:	3b c2                	cmp    %edx,%eax
494a28:	74 37                	je     0x494a61
494a2a:	8b 9d ec fe ff ff    	mov    -0x114(%ebp),%ebx
494a30:	2b c2                	sub    %edx,%eax
494a32:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
494a38:	8b d0                	mov    %eax,%edx
494a3a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
494a40:	8a 06                	mov    (%esi),%al
494a42:	8d 76 01             	lea    0x1(%esi),%esi
494a45:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
494a49:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
494a4d:	88 4e ff             	mov    %cl,-0x1(%esi)
494a50:	83 eb 01             	sub    $0x1,%ebx
494a53:	75 eb                	jne    0x494a40
494a55:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
494a5b:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
494a61:	52                   	push   %edx
494a62:	57                   	push   %edi
494a63:	8b cb                	mov    %ebx,%ecx
494a65:	ff 15 d4 e2 49 00    	call   *0x49e2d4
494a6b:	ff d3                	call   *%ebx
494a6d:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
494a73:	83 c4 08             	add    $0x8,%esp
494a76:	85 c0                	test   %eax,%eax
494a78:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
494a7e:	7e 35                	jle    0x494ab5
494a80:	8b d8                	mov    %eax,%ebx
494a82:	8b f2                	mov    %edx,%esi
494a84:	3b fa                	cmp    %edx,%edi
494a86:	74 2d                	je     0x494ab5
494a88:	8b c7                	mov    %edi,%eax
494a8a:	2b c2                	sub    %edx,%eax
494a8c:	89 85 ec fe ff ff    	mov    %eax,-0x114(%ebp)
494a92:	8b d0                	mov    %eax,%edx
494a94:	8a 06                	mov    (%esi),%al
494a96:	8d 76 01             	lea    0x1(%esi),%esi
494a99:	8a 4c 32 ff          	mov    -0x1(%edx,%esi,1),%cl
494a9d:	88 44 32 ff          	mov    %al,-0x1(%edx,%esi,1)
494aa1:	88 4e ff             	mov    %cl,-0x1(%esi)
494aa4:	83 eb 01             	sub    $0x1,%ebx
494aa7:	75 eb                	jne    0x494a94
494aa9:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
494aaf:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
494ab5:	8b b5 fc fe ff ff    	mov    -0x104(%ebp),%esi
494abb:	8b da                	mov    %edx,%ebx
494abd:	89 95 04 ff ff ff    	mov    %edx,-0xfc(%ebp)
494ac3:	3b fe                	cmp    %esi,%edi
494ac5:	76 3e                	jbe    0x494b05
494ac7:	eb 07                	jmp    0x494ad0
494ac9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
494ad0:	03 f0                	add    %eax,%esi
494ad2:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
494ad8:	3b f7                	cmp    %edi,%esi
494ada:	73 23                	jae    0x494aff
494adc:	8b 8d f8 fe ff ff    	mov    -0x108(%ebp),%ecx
494ae2:	57                   	push   %edi
494ae3:	56                   	push   %esi
494ae4:	ff 15 d4 e2 49 00    	call   *0x49e2d4
494aea:	ff 95 f8 fe ff ff    	call   *-0x108(%ebp)
494af0:	83 c4 08             	add    $0x8,%esp
494af3:	85 c0                	test   %eax,%eax
494af5:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
494afb:	7e d3                	jle    0x494ad0
494afd:	eb 42                	jmp    0x494b41
494aff:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
494b05:	8b 9d f8 fe ff ff    	mov    -0x108(%ebp),%ebx
494b0b:	eb 03                	jmp    0x494b10
494b0d:	8d 49 00             	lea    0x0(%ecx),%ecx
494b10:	03 f0                	add    %eax,%esi
494b12:	3b f2                	cmp    %edx,%esi
494b14:	77 1f                	ja     0x494b35
494b16:	57                   	push   %edi
494b17:	56                   	push   %esi
494b18:	8b cb                	mov    %ebx,%ecx
494b1a:	ff 15 d4 e2 49 00    	call   *0x49e2d4
494b20:	ff d3                	call   *%ebx
494b22:	8b 95 08 ff ff ff    	mov    -0xf8(%ebp),%edx
494b28:	83 c4 08             	add    $0x8,%esp
494b2b:	85 c0                	test   %eax,%eax
494b2d:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
494b33:	7e db                	jle    0x494b10
494b35:	8b 9d 04 ff ff ff    	mov    -0xfc(%ebp),%ebx
494b3b:	89 b5 f4 fe ff ff    	mov    %esi,-0x10c(%ebp)
494b41:	8b b5 f8 fe ff ff    	mov    -0x108(%ebp),%esi
494b47:	eb 07                	jmp    0x494b50
494b49:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
494b50:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
494b56:	8b cb                	mov    %ebx,%ecx
494b58:	2b d8                	sub    %eax,%ebx
494b5a:	89 8d 04 ff ff ff    	mov    %ecx,-0xfc(%ebp)
494b60:	3b df                	cmp    %edi,%ebx
494b62:	76 1f                	jbe    0x494b83
494b64:	57                   	push   %edi
494b65:	53                   	push   %ebx
494b66:	8b ce                	mov    %esi,%ecx
494b68:	ff 15 d4 e2 49 00    	call   *0x49e2d4
494b6e:	ff d6                	call   *%esi
494b70:	83 c4 08             	add    $0x8,%esp
494b73:	85 c0                	test   %eax,%eax
494b75:	7f d9                	jg     0x494b50
494b77:	8b 85 00 ff ff ff    	mov    -0x100(%ebp),%eax
494b7d:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
494b83:	8b b5 f4 fe ff ff    	mov    -0x10c(%ebp),%esi
494b89:	89 9d 04 ff ff ff    	mov    %ebx,-0xfc(%ebp)
494b8f:	3b de                	cmp    %esi,%ebx
494b91:	72 4a                	jb     0x494bdd
494b93:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
494b99:	8b d3                	mov    %ebx,%edx
494b9b:	74 2b                	je     0x494bc8
494b9d:	2b f3                	sub    %ebx,%esi
494b9f:	8b d8                	mov    %eax,%ebx
494ba1:	8a 02                	mov    (%edx),%al
494ba3:	8d 52 01             	lea    0x1(%edx),%edx
494ba6:	8a 4c 16 ff          	mov    -0x1(%esi,%edx,1),%cl
494baa:	88 44 16 ff          	mov    %al,-0x1(%esi,%edx,1)
494bae:	88 4a ff             	mov    %cl,-0x1(%edx)