47893a:	3b f0                	cmp    %eax,%esi
47893c:	74 25                	je     0x478963
47893e:	53                   	push   %ebx
47893f:	57                   	push   %edi
478940:	8b 5e 08             	mov    0x8(%esi),%ebx
478943:	ff 75 08             	push   0x8(%ebp)
478946:	8b 03                	mov    (%ebx),%eax
478948:	8b 78 0c             	mov    0xc(%eax),%edi
47894b:	8b cf                	mov    %edi,%ecx
47894d:	ff 15 2c 81 4a 00    	call   *0x4a812c
478953:	8b cb                	mov    %ebx,%ecx
478955:	ff d7                	call   *%edi
478957:	8b 45 fc             	mov    -0x4(%ebp),%eax
47895a:	8b 36                	mov    (%esi),%esi
47895c:	3b 70 08             	cmp    0x8(%eax),%esi
47895f:	75 df                	jne    0x478940
478961:	5f                   	pop    %edi
478962:	5b                   	pop    %ebx
478963:	5e                   	pop    %esi
478964:	c9                   	leave
478965:	c2 04 00             	ret    $0x4
478968:	8b ff                	mov    %edi,%edi
47896a:	55                   	push   %ebp
47896b:	8b ec                	mov    %esp,%ebp
47896d:	83 e4 f8             	and    $0xfffffff8,%esp
478970:	83 ec 24             	sub    $0x24,%esp
478973:	a1 dc 38 4a 00       	mov    0x4a38dc,%eax
478978:	33 c4                	xor    %esp,%eax
47897a:	89 44 24 20          	mov    %eax,0x20(%esp)
47897e:	8b 45 08             	mov    0x8(%ebp),%eax
478981:	8b 55 0c             	mov    0xc(%ebp),%edx
478984:	53                   	push   %ebx
478985:	8b d9                	mov    %ecx,%ebx
478987:	89 44 24 04          	mov    %eax,0x4(%esp)
47898b:	33 c9                	xor    %ecx,%ecx
47898d:	89 5c 24 10          	mov    %ebx,0x10(%esp)
478991:	89 48 0c             	mov    %ecx,0xc(%eax)
478994:	89 48 08             	mov    %ecx,0x8(%eax)
478997:	89 48 04             	mov    %ecx,0x4(%eax)
47899a:	89 08                	mov    %ecx,(%eax)
47899c:	8b 4b 08             	mov    0x8(%ebx),%ecx
47899f:	56                   	push   %esi
4789a0:	57                   	push   %edi
4789a1:	89 54 24 10          	mov    %edx,0x10(%esp)
4789a5:	8b 31                	mov    (%ecx),%esi
4789a7:	89 74 24 14          	mov    %esi,0x14(%esp)
4789ab:	3b f1                	cmp    %ecx,%esi
4789ad:	0f 84 97 00 00 00    	je     0x478a4a
4789b3:	8b 7e 08             	mov    0x8(%esi),%edi
4789b6:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4789ba:	52                   	push   %edx
4789bb:	51                   	push   %ecx
4789bc:	8b 07                	mov    (%edi),%eax
4789be:	8b 70 14             	mov    0x14(%eax),%esi
4789c1:	8b ce                	mov    %esi,%ecx
4789c3:	ff 15 2c 81 4a 00    	call   *0x4a812c
4789c9:	8b cf                	mov    %edi,%ecx
4789cb:	ff d6                	call   *%esi
4789cd:	8b f0                	mov    %eax,%esi
4789cf:	8b 44 24 0c          	mov    0xc(%esp),%eax
4789d3:	8b f8                	mov    %eax,%edi
4789d5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4789d6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4789d7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4789d8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4789d9:	8b 74 24 14          	mov    0x14(%esp),%esi
4789dd:	8b 4b 08             	mov    0x8(%ebx),%ecx
4789e0:	8b 36                	mov    (%esi),%esi
4789e2:	3b f1                	cmp    %ecx,%esi
4789e4:	eb 5e                	jmp    0x478a44
4789e6:	8b 5e 08             	mov    0x8(%esi),%ebx
4789e9:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4789ed:	52                   	push   %edx
4789ee:	51                   	push   %ecx
4789ef:	8b 03                	mov    (%ebx),%eax
4789f1:	8b 78 14             	mov    0x14(%eax),%edi
4789f4:	8b cf                	mov    %edi,%ecx
4789f6:	ff 15 2c 81 4a 00    	call   *0x4a812c
4789fc:	8b cb                	mov    %ebx,%ecx
4789fe:	ff d7                	call   *%edi
478a00:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
478a04:	e8 6d 81 00 00       	call   0x480b76
478a09:	8b 44 24 0c          	mov    0xc(%esp),%eax
478a0d:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
478a11:	39 08                	cmp    %ecx,(%eax)
478a13:	7e 02                	jle    0x478a17
478a15:	89 08                	mov    %ecx,(%eax)
478a17:	8b 4c 24 24          	mov    0x24(%esp),%ecx
478a1b:	39 48 08             	cmp    %ecx,0x8(%eax)
478a1e:	7d 03                	jge    0x478a23
478a20:	89 48 08             	mov    %ecx,0x8(%eax)
478a23:	8b 4c 24 20          	mov    0x20(%esp),%ecx
478a27:	39 48 04             	cmp    %ecx,0x4(%eax)
478a2a:	7e 03                	jle    0x478a2f
478a2c:	89 48 04             	mov    %ecx,0x4(%eax)
478a2f:	8b 4c 24 28          	mov    0x28(%esp),%ecx
478a33:	39 48 0c             	cmp    %ecx,0xc(%eax)
478a36:	7d 03                	jge    0x478a3b
478a38:	89 48 0c             	mov    %ecx,0xc(%eax)
478a3b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
478a3f:	8b 36                	mov    (%esi),%esi
478a41:	3b 71 08             	cmp    0x8(%ecx),%esi
478a44:	8b 54 24 10          	mov    0x10(%esp),%edx
478a48:	75 9c                	jne    0x4789e6
478a4a:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
478a4e:	5f                   	pop    %edi
478a4f:	5e                   	pop    %esi
478a50:	5b                   	pop    %ebx
478a51:	33 cc                	xor    %esp,%ecx
478a53:	e8 a8 74 01 00       	call   0x48ff00
478a58:	8b e5                	mov    %ebp,%esp
478a5a:	5d                   	pop    %ebp
478a5b:	c2 08 00             	ret    $0x8
478a5e:	8b ff                	mov    %edi,%edi
478a60:	55                   	push   %ebp
478a61:	8b ec                	mov    %esp,%ebp
478a63:	51                   	push   %ecx
478a64:	53                   	push   %ebx
478a65:	56                   	push   %esi
478a66:	33 f6                	xor    %esi,%esi
478a68:	89 71 0c             	mov    %esi,0xc(%ecx)
478a6b:	89 71 08             	mov    %esi,0x8(%ecx)
478a6e:	89 71 04             	mov    %esi,0x4(%ecx)
478a71:	89 31                	mov    %esi,(%ecx)
478a73:	8b 02                	mov    (%edx),%eax
478a75:	89 01                	mov    %eax,(%ecx)
478a77:	8b 42 04             	mov    0x4(%edx),%eax
478a7a:	89 41 04             	mov    %eax,0x4(%ecx)
478a7d:	8b 1a                	mov    (%edx),%ebx
478a7f:	57                   	push   %edi
478a80:	89 59 08             	mov    %ebx,0x8(%ecx)
478a83:	8b 7a 04             	mov    0x4(%edx),%edi
478a86:	89 45 fc             	mov    %eax,-0x4(%ebp)
478a89:	89 79 0c             	mov    %edi,0xc(%ecx)
478a8c:	39 75 08             	cmp    %esi,0x8(%ebp)
478a8f:	7e 3a                	jle    0x478acb
478a91:	8b 04 f2             	mov    (%edx,%esi,8),%eax
478a94:	39 01                	cmp    %eax,(%ecx)
478a96:	7d 02                	jge    0x478a9a
478a98:	89 01                	mov    %eax,(%ecx)
478a9a:	8b 45 fc             	mov    -0x4(%ebp),%eax
478a9d:	3b 44 f2 04          	cmp    0x4(%edx,%esi,8),%eax
478aa1:	7d 0a                	jge    0x478aad
478aa3:	8b 44 f2 04          	mov    0x4(%edx,%esi,8),%eax
478aa7:	89 45 fc             	mov    %eax,-0x4(%ebp)
478aaa:	89 41 04             	mov    %eax,0x4(%ecx)
478aad:	3b 1c f2             	cmp    (%edx,%esi,8),%ebx
478ab0:	7e 06                	jle    0x478ab8
478ab2:	8b 1c f2             	mov    (%edx,%esi,8),%ebx
478ab5:	89 59 08             	mov    %ebx,0x8(%ecx)
478ab8:	3b 7c f2 04          	cmp    0x4(%edx,%esi,8),%edi
478abc:	7e 07                	jle    0x478ac5
478abe:	8b 7c f2 04          	mov    0x4(%edx,%esi,8),%edi
478ac2:	89 79 0c             	mov    %edi,0xc(%ecx)
478ac5:	46                   	inc    %esi
478ac6:	3b 75 08             	cmp    0x8(%ebp),%esi
478ac9:	7c c6                	jl     0x478a91
478acb:	e8 a6 80 00 00       	call   0x480b76
478ad0:	5f                   	pop    %edi
478ad1:	5e                   	pop    %esi
478ad2:	8b c1                	mov    %ecx,%eax
478ad4:	5b                   	pop    %ebx
478ad5:	c9                   	leave
478ad6:	c2 04 00             	ret    $0x4
478ad9:	cc                   	int3
478ada:	cc                   	int3
478adb:	cc                   	int3
478adc:	cc                   	int3
478add:	cc                   	int3
478ade:	cc                   	int3
478adf:	cc                   	int3
478ae0:	8b ff                	mov    %edi,%edi
478ae2:	55                   	push   %ebp
478ae3:	8b ec                	mov    %esp,%ebp
478ae5:	83 ec 10             	sub    $0x10,%esp
478ae8:	56                   	push   %esi
478ae9:	8b f1                	mov    %ecx,%esi
478aeb:	8b 4d 08             	mov    0x8(%ebp),%ecx
478aee:	6a 02                	push   $0x2
478af0:	8b 46 04             	mov    0x4(%esi),%eax
478af3:	89 45 f0             	mov    %eax,-0x10(%ebp)
478af6:	8b 46 08             	mov    0x8(%esi),%eax
478af9:	89 45 f4             	mov    %eax,-0xc(%ebp)
478afc:	8b 46 0c             	mov    0xc(%esi),%eax
478aff:	89 45 f8             	mov    %eax,-0x8(%ebp)
478b02:	8b 46 10             	mov    0x10(%esi),%eax
478b05:	89 45 fc             	mov    %eax,-0x4(%ebp)
478b08:	8d 45 f0             	lea    -0x10(%ebp),%eax
478b0b:	50                   	push   %eax
478b0c:	e8 24 a3 00 00       	call   0x482e35
478b11:	8b 45 f0             	mov    -0x10(%ebp),%eax
478b14:	89 46 04             	mov    %eax,0x4(%esi)
478b17:	8b 45 f4             	mov    -0xc(%ebp),%eax
478b1a:	89 46 08             	mov    %eax,0x8(%esi)
478b1d:	8b 45 f8             	mov    -0x8(%ebp),%eax
478b20:	89 46 0c             	mov    %eax,0xc(%esi)
478b23:	8b 45 fc             	mov    -0x4(%ebp),%eax
478b26:	89 46 10             	mov    %eax,0x10(%esi)
478b29:	5e                   	pop    %esi
478b2a:	c9                   	leave
478b2b:	c2 08 00             	ret    $0x8
478b2e:	cc                   	int3
478b2f:	cc                   	int3
478b30:	8b ff                	mov    %edi,%edi
478b32:	55                   	push   %ebp
478b33:	8b ec                	mov    %esp,%ebp
478b35:	83 ec 10             	sub    $0x10,%esp
478b38:	8b 41 04             	mov    0x4(%ecx),%eax
478b3b:	89 45 f0             	mov    %eax,-0x10(%ebp)
478b3e:	8b 41 08             	mov    0x8(%ecx),%eax
478b41:	89 45 f4             	mov    %eax,-0xc(%ebp)
478b44:	8b 41 0c             	mov    0xc(%ecx),%eax
478b47:	89 45 f8             	mov    %eax,-0x8(%ebp)
478b4a:	8b 41 10             	mov    0x10(%ecx),%eax
478b4d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
478b50:	89 45 fc             	mov    %eax,-0x4(%ebp)
478b53:	8d 45 f0             	lea    -0x10(%ebp),%eax
478b56:	6a 02                	push   $0x2
478b58:	50                   	push   %eax
478b59:	e8 d7 a2 00 00       	call   0x482e35
478b5e:	8b 4d 08             	mov    0x8(%ebp),%ecx
478b61:	8d 55 f0             	lea    -0x10(%ebp),%edx
478b64:	6a 02                	push   $0x2
478b66:	e8 f3 fe ff ff       	call   0x478a5e
478b6b:	8b c1                	mov    %ecx,%eax
478b6d:	c9                   	leave
478b6e:	c2 08 00             	ret    $0x8
478b71:	cc                   	int3
478b72:	cc                   	int3
478b73:	cc                   	int3
478b74:	cc                   	int3
478b75:	cc                   	int3
478b76:	cc                   	int3
478b77:	cc                   	int3
478b78:	cc                   	int3
478b79:	cc                   	int3
478b7a:	cc                   	int3
478b7b:	cc                   	int3
478b7c:	cc                   	int3
478b7d:	cc                   	int3
478b7e:	cc                   	int3
478b7f:	cc                   	int3
478b80:	8b ff                	mov    %edi,%edi
478b82:	55                   	push   %ebp
478b83:	8b ec                	mov    %esp,%ebp
478b85:	83 e4 f8             	and    $0xfffffff8,%esp
478b88:	83 ec 54             	sub    $0x54,%esp
478b8b:	53                   	push   %ebx
478b8c:	56                   	push   %esi
478b8d:	57                   	push   %edi
478b8e:	8b f9                	mov    %ecx,%edi
478b90:	89 7c 24 10          	mov    %edi,0x10(%esp)
478b94:	d9 47 14             	flds   0x14(%edi)
478b97:	8d 77 04             	lea    0x4(%edi),%esi
478b9a:	dd 54 24 38          	fstl   0x38(%esp)
478b9e:	dc 0d 08 42 41 00    	fmull  0x414208
478ba4:	8b ce                	mov    %esi,%ecx
478ba6:	8b 06                	mov    (%esi),%eax
478ba8:	03 47 0c             	add    0xc(%edi),%eax
478bab:	99                   	cltd
478bac:	2b c2                	sub    %edx,%eax
478bae:	dc 35 b0 42 41 00    	fdivl  0x4142b0
478bb4:	d1 f8                	sar    $1,%eax
478bb6:	d9 5c 24 14          	fstps  0x14(%esp)
478bba:	d9 44 24 14          	flds   0x14(%esp)
478bbe:	dd 54 24 28          	fstl   0x28(%esp)
478bc2:	89 44 24 14          	mov    %eax,0x14(%esp)
478bc6:	db 44 24 14          	fildl  0x14(%esp)
478bca:	d9 5c 24 14          	fstps  0x14(%esp)
478bce:	d9 44 24 14          	flds   0x14(%esp)
478bd2:	dd 5c 24 18          	fstpl  0x18(%esp)
478bd6:	e8 78 7f 00 00       	call   0x480b53
478bdb:	89 44 24 14          	mov    %eax,0x14(%esp)
478bdf:	db 44 24 14          	fildl  0x14(%esp)
478be3:	d9 5c 24 14          	fstps  0x14(%esp)
478be7:	d9 44 24 14          	flds   0x14(%esp)
478beb:	dd 5c 24 20          	fstpl  0x20(%esp)
478bef:	e8 e1 82 01 00       	call   0x490ed5
478bf4:	d9 5c 24 14          	fstps  0x14(%esp)
478bf8:	d9 44 24 14          	flds   0x14(%esp)
478bfc:	dc 4c 24 20          	fmull  0x20(%esp)
478c00:	dc 0d 88 41 41 00    	fmull  0x414188
478c06:	dc 44 24 18          	faddl  0x18(%esp)
478c0a:	e8 12 84 01 00       	call   0x491021
478c0f:	8b d8                	mov    %eax,%ebx
478c11:	8b ce                	mov    %esi,%ecx
478c13:	8b 47 08             	mov    0x8(%edi),%eax
478c16:	03 47 10             	add    0x10(%edi),%eax
478c19:	99                   	cltd
478c1a:	2b c2                	sub    %edx,%eax
478c1c:	d1 f8                	sar    $1,%eax
478c1e:	89 44 24 14          	mov    %eax,0x14(%esp)
478c22:	db 44 24 14          	fildl  0x14(%esp)
478c26:	d9 5c 24 14          	fstps  0x14(%esp)
478c2a:	d9 44 24 14          	flds   0x14(%esp)
478c2e:	dd 5c 24 20          	fstpl  0x20(%esp)
478c32:	e8 2d 7f 00 00       	call   0x480b64
478c37:	89 44 24 14          	mov    %eax,0x14(%esp)
478c3b:	db 44 24 14          	fildl  0x14(%esp)
478c3f:	d9 5c 24 14          	fstps  0x14(%esp)
478c43:	d9 44 24 14          	flds   0x14(%esp)
478c47:	dd 5c 24 30          	fstpl  0x30(%esp)
478c4b:	dd 44 24 28          	fldl   0x28(%esp)
478c4f:	e8 87 82 01 00       	call   0x490edb
478c54:	d9 5c 24 14          	fstps  0x14(%esp)
478c58:	d9 44 24 14          	flds   0x14(%esp)
478c5c:	dc 4c 24 30          	fmull  0x30(%esp)
478c60:	dc 0d 88 41 41 00    	fmull  0x414188
478c66:	dc 44 24 20          	faddl  0x20(%esp)
478c6a:	e8 b2 83 01 00       	call   0x491021
478c6f:	8b f8                	mov    %eax,%edi
478c71:	8b ce                	mov    %esi,%ecx
478c73:	8b 44 24 10          	mov    0x10(%esp),%eax
478c77:	d9 40 18             	flds   0x18(%eax)
478c7a:	dc 44 24 38          	faddl  0x38(%esp)
478c7e:	dc 0d 08 42 41 00    	fmull  0x414208
478c84:	dc 35 b0 42 41 00    	fdivl  0x4142b0
478c8a:	d9 5c 24 14          	fstps  0x14(%esp)
478c8e:	d9 44 24 14          	flds   0x14(%esp)
478c92:	dd 54 24 30          	fstl   0x30(%esp)
478c96:	e8 b8 7e 00 00       	call   0x480b53
478c9b:	89 44 24 14          	mov    %eax,0x14(%esp)
478c9f:	db 44 24 14          	fildl  0x14(%esp)
478ca3:	d9 5c 24 14          	fstps  0x14(%esp)
478ca7:	d9 44 24 14          	flds   0x14(%esp)
478cab:	dd 5c 24 38          	fstpl  0x38(%esp)
478caf:	e8 21 82 01 00       	call   0x490ed5
478cb4:	d9 5c 24 14          	fstps  0x14(%esp)
478cb8:	d9 44 24 14          	flds   0x14(%esp)
478cbc:	dc 4c 24 38          	fmull  0x38(%esp)
478cc0:	dc 0d 88 41 41 00    	fmull  0x414188
478cc6:	dc 44 24 18          	faddl  0x18(%esp)
478cca:	e8 52 83 01 00       	call   0x491021
478ccf:	8b 4c 24 10          	mov    0x10(%esp),%ecx
478cd3:	8b f0                	mov    %eax,%esi
478cd5:	8d 49 04             	lea    0x4(%ecx),%ecx
478cd8:	e8 87 7e 00 00       	call   0x480b64
478cdd:	89 44 24 14          	mov    %eax,0x14(%esp)
478ce1:	db 44 24 14          	fildl  0x14(%esp)
478ce5:	d9 5c 24 14          	fstps  0x14(%esp)
478ce9:	d9 44 24 14          	flds   0x14(%esp)
478ced:	dd 5c 24 38          	fstpl  0x38(%esp)
478cf1:	dd 44 24 30          	fldl   0x30(%esp)
478cf5:	e8 e1 81 01 00       	call   0x490edb
478cfa:	d9 5c 24 14          	fstps  0x14(%esp)
478cfe:	d9 44 24 14          	flds   0x14(%esp)
478d02:	dc 4c 24 38          	fmull  0x38(%esp)
478d06:	dc 0d 88 41 41 00    	fmull  0x414188
478d0c:	dc 44 24 20          	faddl  0x20(%esp)
478d10:	e8 0c 83 01 00       	call   0x491021