4596df:	e8 3d 79 03 00       	call   0x491021
4596e4:	db 44 24 3c          	fildl  0x3c(%esp)
4596e8:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
4596ec:	2b c8                	sub    %eax,%ecx
4596ee:	89 4c 24 10          	mov    %ecx,0x10(%esp)
4596f2:	dd 5c 24 20          	fstpl  0x20(%esp)
4596f6:	dd 44 24 20          	fldl   0x20(%esp)
4596fa:	dd 44 24 18          	fldl   0x18(%esp)
4596fe:	dc c9                	fmul   %st,%st(1)
459700:	d9 c9                	fxch   %st(1)
459702:	e8 1a 79 03 00       	call   0x491021
459707:	db 44 24 34          	fildl  0x34(%esp)
45970b:	8b 76 04             	mov    0x4(%esi),%esi
45970e:	03 f0                	add    %eax,%esi
459710:	89 74 24 18          	mov    %esi,0x18(%esp)
459714:	dd 5c 24 20          	fstpl  0x20(%esp)
459718:	dc 4c 24 20          	fmull  0x20(%esp)
45971c:	eb 6a                	jmp    0x459788
45971e:	db 44 24 38          	fildl  0x38(%esp)
459722:	dd 5c 24 10          	fstpl  0x10(%esp)
459726:	dd 44 24 10          	fldl   0x10(%esp)
45972a:	dd 44 24 20          	fldl   0x20(%esp)
45972e:	dc c9                	fmul   %st,%st(1)
459730:	d9 c9                	fxch   %st(1)
459732:	e8 ea 78 03 00       	call   0x491021
459737:	db 44 24 3c          	fildl  0x3c(%esp)
45973b:	03 06                	add    (%esi),%eax
45973d:	89 44 24 10          	mov    %eax,0x10(%esp)
459741:	dd 5c 24 20          	fstpl  0x20(%esp)
459745:	dd 44 24 20          	fldl   0x20(%esp)
459749:	dd 44 24 18          	fldl   0x18(%esp)
45974d:	dc c9                	fmul   %st,%st(1)
45974f:	d9 c9                	fxch   %st(1)
459751:	e8 cb 78 03 00       	call   0x491021
459756:	db 44 24 30          	fildl  0x30(%esp)
45975a:	8b 76 04             	mov    0x4(%esi),%esi
45975d:	03 f0                	add    %eax,%esi
45975f:	89 74 24 18          	mov    %esi,0x18(%esp)
459763:	dd 5c 24 20          	fstpl  0x20(%esp)
459767:	dd 44 24 20          	fldl   0x20(%esp)
45976b:	de ca                	fmulp  %st,%st(2)
45976d:	d9 c9                	fxch   %st(1)
45976f:	e8 ad 78 03 00       	call   0x491021
459774:	db 44 24 34          	fildl  0x34(%esp)
459778:	03 44 24 10          	add    0x10(%esp),%eax
45977c:	89 44 24 0c          	mov    %eax,0xc(%esp)
459780:	dd 5c 24 20          	fstpl  0x20(%esp)
459784:	dc 4c 24 20          	fmull  0x20(%esp)
459788:	e8 94 78 03 00       	call   0x491021
45978d:	03 c6                	add    %esi,%eax
45978f:	89 44 24 20          	mov    %eax,0x20(%esp)
459793:	85 ff                	test   %edi,%edi
459795:	0f 84 2f 01 00 00    	je     0x4598ca
45979b:	8b 07                	mov    (%edi),%eax
45979d:	6a 07                	push   $0x7
45979f:	8b 70 2c             	mov    0x2c(%eax),%esi
4597a2:	8b ce                	mov    %esi,%ecx
4597a4:	ff 15 2c 81 4a 00    	call   *0x4a812c
4597aa:	8b cf                	mov    %edi,%ecx
4597ac:	ff d6                	call   *%esi
4597ae:	89 44 24 30          	mov    %eax,0x30(%esp)
4597b2:	8b 07                	mov    (%edi),%eax
4597b4:	6a 01                	push   $0x1
4597b6:	8b 70 2c             	mov    0x2c(%eax),%esi
4597b9:	8b ce                	mov    %esi,%ecx
4597bb:	ff 15 2c 81 4a 00    	call   *0x4a812c
4597c1:	8b cf                	mov    %edi,%ecx
4597c3:	ff d6                	call   *%esi
4597c5:	ff 74 24 20          	push   0x20(%esp)
4597c9:	8b 74 24 14          	mov    0x14(%esp),%esi
4597cd:	ff 74 24 10          	push   0x10(%esp)
4597d1:	89 44 24 40          	mov    %eax,0x40(%esp)
4597d5:	ff 74 24 20          	push   0x20(%esp)
4597d9:	56                   	push   %esi
4597da:	ff 77 04             	push   0x4(%edi)
4597dd:	ff 15 f4 70 4a 00    	call   *0x4a70f4
4597e3:	ff 74 24 18          	push   0x18(%esp)
4597e7:	8d 44 24 4c          	lea    0x4c(%esp),%eax
4597eb:	8b cf                	mov    %edi,%ecx
4597ed:	56                   	push   %esi
4597ee:	50                   	push   %eax
4597ef:	ff 15 68 7b 4a 00    	call   *0x4a7b68
4597f5:	8b 74 24 20          	mov    0x20(%esp),%esi
4597f9:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4597fd:	4e                   	dec    %esi
4597fe:	8b 4c 24 28          	mov    0x28(%esp),%ecx
459802:	4f                   	dec    %edi
459803:	56                   	push   %esi
459804:	57                   	push   %edi
459805:	ff 15 6c 7b 4a 00    	call   *0x4a7b6c
45980b:	56                   	push   %esi
45980c:	ff 74 24 14          	push   0x14(%esp)
459810:	8b 74 24 30          	mov    0x30(%esp),%esi
459814:	8d 44 24 58          	lea    0x58(%esp),%eax
459818:	50                   	push   %eax
459819:	8b ce                	mov    %esi,%ecx
45981b:	ff 15 68 7b 4a 00    	call   *0x4a7b68
459821:	ff 74 24 18          	push   0x18(%esp)
459825:	8b ce                	mov    %esi,%ecx
459827:	57                   	push   %edi
459828:	ff 15 6c 7b 4a 00    	call   *0x4a7b6c
45982e:	8b 44 24 30          	mov    0x30(%esp),%eax
459832:	85 c0                	test   %eax,%eax
459834:	75 04                	jne    0x45983a
459836:	8b c3                	mov    %ebx,%eax
459838:	eb 03                	jmp    0x45983d
45983a:	8b 40 04             	mov    0x4(%eax),%eax
45983d:	50                   	push   %eax
45983e:	ff 76 04             	push   0x4(%esi)
459841:	ff 15 90 75 4a 00    	call   *0x4a7590
459847:	8b 44 24 38          	mov    0x38(%esp),%eax
45984b:	85 c0                	test   %eax,%eax
45984d:	74 03                	je     0x459852
45984f:	8b 58 04             	mov    0x4(%eax),%ebx
459852:	53                   	push   %ebx
459853:	ff 76 04             	push   0x4(%esi)
459856:	ff 15 90 75 4a 00    	call   *0x4a7590
45985c:	eb 6c                	jmp    0x4598ca
45985e:	ff 75 10             	push   0x10(%ebp)
459861:	ff 15 b0 76 4a 00    	call   *0x4a76b0
459867:	8b c8                	mov    %eax,%ecx
459869:	89 44 24 28          	mov    %eax,0x28(%esp)
45986d:	ff 15 60 7b 4a 00    	call   *0x4a7b60
459873:	a8 01                	test   $0x1,%al
459875:	74 7d                	je     0x4598f4
459877:	85 f6                	test   %esi,%esi
459879:	74 79                	je     0x4598f4
45987b:	8b 46 40             	mov    0x40(%esi),%eax
45987e:	89 44 24 38          	mov    %eax,0x38(%esp)
459882:	85 c0                	test   %eax,%eax
459884:	74 6e                	je     0x4598f4
459886:	8b 5d 14             	mov    0x14(%ebp),%ebx
459889:	8b 40 30             	mov    0x30(%eax),%eax
45988c:	8b 4c 24 28          	mov    0x28(%esp),%ecx
459890:	6a 00                	push   $0x0
459892:	8b 3b                	mov    (%ebx),%edi
459894:	2b c7                	sub    %edi,%eax
459896:	8b 73 08             	mov    0x8(%ebx),%esi
459899:	2b c6                	sub    %esi,%eax
45989b:	50                   	push   %eax
45989c:	ff 15 64 7b 4a 00    	call   *0x4a7b64
4598a2:	8b 44 24 38          	mov    0x38(%esp),%eax
4598a6:	2b fe                	sub    %esi,%edi
4598a8:	ff 73 0c             	push   0xc(%ebx)
4598ab:	8b 48 30             	mov    0x30(%eax),%ecx
4598ae:	2b 0b                	sub    (%ebx),%ecx
4598b0:	51                   	push   %ecx
4598b1:	ff 73 04             	push   0x4(%ebx)
4598b4:	89 4b 08             	mov    %ecx,0x8(%ebx)
4598b7:	8d 04 0f             	lea    (%edi,%ecx,1),%eax
4598ba:	89 03                	mov    %eax,(%ebx)
4598bc:	50                   	push   %eax
4598bd:	8b 44 24 38          	mov    0x38(%esp),%eax
4598c1:	ff 70 04             	push   0x4(%eax)
4598c4:	ff 15 f4 70 4a 00    	call   *0x4a70f4
4598ca:	33 db                	xor    %ebx,%ebx
4598cc:	43                   	inc    %ebx
4598cd:	eb 25                	jmp    0x4598f4
4598cf:	85 f6                	test   %esi,%esi
4598d1:	74 21                	je     0x4598f4
4598d3:	8b 7e 40             	mov    0x40(%esi),%edi
4598d6:	85 ff                	test   %edi,%edi
4598d8:	74 1a                	je     0x4598f4
4598da:	8b 75 14             	mov    0x14(%ebp),%esi
4598dd:	83 c7 28             	add    $0x28,%edi
4598e0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4598e4:	eb 0e                	jmp    0x4598f4
4598e6:	ff 75 14             	push   0x14(%ebp)
4598e9:	6a eb                	push   $0xffffffeb
4598eb:	ff 75 08             	push   0x8(%ebp)
4598ee:	ff 15 28 7e 4a 00    	call   *0x4a7e28
4598f4:	5f                   	pop    %edi
4598f5:	5e                   	pop    %esi
4598f6:	8b c3                	mov    %ebx,%eax
4598f8:	5b                   	pop    %ebx
4598f9:	8b e5                	mov    %ebp,%esp
4598fb:	5d                   	pop    %ebp
4598fc:	c2 10 00             	ret    $0x10
4598ff:	8b ff                	mov    %edi,%edi
459901:	55                   	push   %ebp
459902:	8b ec                	mov    %esp,%ebp
459904:	83 ec 10             	sub    $0x10,%esp
459907:	53                   	push   %ebx
459908:	56                   	push   %esi
459909:	8b f1                	mov    %ecx,%esi
45990b:	33 db                	xor    %ebx,%ebx
45990d:	57                   	push   %edi
45990e:	39 5e 08             	cmp    %ebx,0x8(%esi)
459911:	75 3a                	jne    0x45994d
459913:	8b 55 0c             	mov    0xc(%ebp),%edx
459916:	8b 42 14             	mov    0x14(%edx),%eax
459919:	2b 42 34             	sub    0x34(%edx),%eax
45991c:	2b 42 2c             	sub    0x2c(%edx),%eax
45991f:	89 45 f0             	mov    %eax,-0x10(%ebp)
459922:	8b 42 18             	mov    0x18(%edx),%eax
459925:	2b 42 38             	sub    0x38(%edx),%eax
459928:	2b 42 30             	sub    0x30(%edx),%eax
45992b:	89 45 f4             	mov    %eax,-0xc(%ebp)
45992e:	8d 45 f8             	lea    -0x8(%ebp),%eax
459931:	50                   	push   %eax
459932:	8d 45 fc             	lea    -0x4(%ebp),%eax
459935:	50                   	push   %eax
459936:	53                   	push   %ebx
459937:	53                   	push   %ebx
459938:	8d 45 f0             	lea    -0x10(%ebp),%eax
45993b:	50                   	push   %eax
45993c:	e8 fe fa ff ff       	call   0x45943f
459941:	8b 45 fc             	mov    -0x4(%ebp),%eax
459944:	89 46 10             	mov    %eax,0x10(%esi)
459947:	8b 45 f8             	mov    -0x8(%ebp),%eax
45994a:	89 46 14             	mov    %eax,0x14(%esi)
45994d:	ff 36                	push   (%esi)
45994f:	8b 7d 08             	mov    0x8(%ebp),%edi
459952:	68 bb 04 00 00       	push   $0x4bb
459957:	57                   	push   %edi
459958:	ff 15 2c 7e 4a 00    	call   *0x4a7e2c
45995e:	ff 76 04             	push   0x4(%esi)
459961:	68 bc 04 00 00       	push   $0x4bc
459966:	57                   	push   %edi
459967:	ff 15 2c 7e 4a 00    	call   *0x4a7e2c
45996d:	33 c0                	xor    %eax,%eax
45996f:	39 5e 08             	cmp    %ebx,0x8(%esi)
459972:	0f 94 c0             	sete   %al
459975:	50                   	push   %eax
459976:	68 be 04 00 00       	push   $0x4be
45997b:	57                   	push   %edi
45997c:	ff 15 2c 7e 4a 00    	call   *0x4a7e2c
459982:	39 5d 10             	cmp    %ebx,0x10(%ebp)
459985:	74 10                	je     0x459997
459987:	53                   	push   %ebx
459988:	ff 76 0c             	push   0xc(%esi)
45998b:	68 c0 04 00 00       	push   $0x4c0
459990:	57                   	push   %edi
459991:	ff 15 9c 7d 4a 00    	call   *0x4a7d9c
459997:	33 c0                	xor    %eax,%eax
459999:	39 5e 08             	cmp    %ebx,0x8(%esi)
45999c:	0f 94 c0             	sete   %al
45999f:	50                   	push   %eax
4599a0:	68 c0 04 00 00       	push   $0x4c0
4599a5:	57                   	push   %edi
4599a6:	ff 15 30 7e 4a 00    	call   *0x4a7e30
4599ac:	50                   	push   %eax
4599ad:	ff 15 40 7d 4a 00    	call   *0x4a7d40
4599b3:	33 c0                	xor    %eax,%eax
4599b5:	39 5e 08             	cmp    %ebx,0x8(%esi)
4599b8:	0f 94 c0             	sete   %al
4599bb:	50                   	push   %eax
4599bc:	68 c1 04 00 00       	push   $0x4c1
4599c1:	57                   	push   %edi
4599c2:	ff 15 30 7e 4a 00    	call   *0x4a7e30
4599c8:	50                   	push   %eax
4599c9:	ff 15 40 7d 4a 00    	call   *0x4a7d40
4599cf:	ff 76 08             	push   0x8(%esi)
4599d2:	68 bf 04 00 00       	push   $0x4bf
4599d7:	57                   	push   %edi
4599d8:	ff 15 2c 7e 4a 00    	call   *0x4a7e2c
4599de:	53                   	push   %ebx
4599df:	ff 76 10             	push   0x10(%esi)
4599e2:	bb c2 04 00 00       	mov    $0x4c2,%ebx
4599e7:	53                   	push   %ebx
4599e8:	57                   	push   %edi
4599e9:	ff 15 9c 7d 4a 00    	call   *0x4a7d9c
4599ef:	ff 76 08             	push   0x8(%esi)
4599f2:	53                   	push   %ebx
4599f3:	57                   	push   %edi
4599f4:	ff 15 30 7e 4a 00    	call   *0x4a7e30
4599fa:	50                   	push   %eax
4599fb:	ff 15 40 7d 4a 00    	call   *0x4a7d40
459a01:	ff 76 08             	push   0x8(%esi)
459a04:	68 c3 04 00 00       	push   $0x4c3
459a09:	57                   	push   %edi
459a0a:	ff 15 30 7e 4a 00    	call   *0x4a7e30
459a10:	50                   	push   %eax
459a11:	ff 15 40 7d 4a 00    	call   *0x4a7d40
459a17:	6a 00                	push   $0x0
459a19:	ff 76 14             	push   0x14(%esi)
459a1c:	83 c3 02             	add    $0x2,%ebx
459a1f:	53                   	push   %ebx
459a20:	57                   	push   %edi
459a21:	ff 15 9c 7d 4a 00    	call   *0x4a7d9c
459a27:	ff 76 08             	push   0x8(%esi)
459a2a:	53                   	push   %ebx
459a2b:	57                   	push   %edi
459a2c:	ff 15 30 7e 4a 00    	call   *0x4a7e30
459a32:	50                   	push   %eax
459a33:	ff 15 40 7d 4a 00    	call   *0x4a7d40
459a39:	ff 76 08             	push   0x8(%esi)
459a3c:	68 c5 04 00 00       	push   $0x4c5
459a41:	57                   	push   %edi
459a42:	ff 15 30 7e 4a 00    	call   *0x4a7e30
459a48:	50                   	push   %eax
459a49:	ff 15 40 7d 4a 00    	call   *0x4a7d40
459a4f:	6a 01                	push   $0x1
459a51:	6a 00                	push   $0x0
459a53:	68 38 04 00 00       	push   $0x438
459a58:	57                   	push   %edi
459a59:	ff 15 30 7e 4a 00    	call   *0x4a7e30
459a5f:	50                   	push   %eax
459a60:	ff 15 d8 7d 4a 00    	call   *0x4a7dd8
459a66:	5f                   	pop    %edi
459a67:	5e                   	pop    %esi
459a68:	5b                   	pop    %ebx
459a69:	c9                   	leave
459a6a:	c2 0c 00             	ret    $0xc
459a6d:	8b ff                	mov    %edi,%edi
459a6f:	55                   	push   %ebp
459a70:	8b ec                	mov    %esp,%ebp
459a72:	8b 45 08             	mov    0x8(%ebp),%eax
459a75:	85 c0                	test   %eax,%eax
459a77:	74 19                	je     0x459a92
459a79:	6a 01                	push   $0x1
459a7b:	6a 00                	push   $0x0
459a7d:	68 38 04 00 00       	push   $0x438
459a82:	51                   	push   %ecx
459a83:	89 02                	mov    %eax,(%edx)
459a85:	ff 15 30 7e 4a 00    	call   *0x4a7e30
459a8b:	50                   	push   %eax
459a8c:	ff 15 d8 7d 4a 00    	call   *0x4a7dd8
459a92:	5d                   	pop    %ebp
459a93:	c2 04 00             	ret    $0x4
459a96:	cc                   	int3
459a97:	cc                   	int3
459a98:	cc                   	int3
459a99:	cc                   	int3
459a9a:	cc                   	int3
459a9b:	cc                   	int3
459a9c:	cc                   	int3
459a9d:	cc                   	int3
459a9e:	cc                   	int3
459a9f:	cc                   	int3
459aa0:	b8 00 45 40 00       	mov    $0x404500,%eax
459aa5:	c3                   	ret
459aa6:	6a 04                	push   $0x4
459aa8:	b8 47 42 49 00       	mov    $0x494247,%eax
459aad:	e8 21 6a 03 00       	call   0x4904d3
459ab2:	8b f9                	mov    %ecx,%edi
459ab4:	89 7d f0             	mov    %edi,-0x10(%ebp)
459ab7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
459aba:	33 d2                	xor    %edx,%edx
459abc:	89 55 fc             	mov    %edx,-0x4(%ebp)
459abf:	c7 07 ec 44 40 00    	movl   $0x4044ec,(%edi)
459ac5:	89 57 04             	mov    %edx,0x4(%edi)
459ac8:	89 57 08             	mov    %edx,0x8(%edi)
459acb:	89 57 18             	mov    %edx,0x18(%edi)
459ace:	85 db                	test   %ebx,%ebx
459ad0:	0f 84 e7 00 00 00    	je     0x459bbd
459ad6:	8b 4d 08             	mov    0x8(%ebp),%ecx