524907:	8b 17                	mov    (%edi),%edx
524909:	89 82 24 02 00 00    	mov    %eax,0x224(%edx)
52490f:	8b 07                	mov    (%edi),%eax
524911:	8b 55 d4             	mov    -0x2c(%ebp),%edx
524914:	89 90 28 02 00 00    	mov    %edx,0x228(%eax)
52491a:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
52491e:	75 06                	jne    0x524926
524920:	ff 85 68 ff ff ff    	incl   -0x98(%ebp)
524926:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
52492a:	75 0c                	jne    0x524938
52492c:	8b 45 d8             	mov    -0x28(%ebp),%eax
52492f:	80 38 00             	cmpb   $0x0,(%eax)
524932:	0f 84 f6 03 00 00    	je     0x524d2e
524938:	55                   	push   %ebp
524939:	e8 06 f7 ff ff       	call   0x524044
52493e:	59                   	pop    %ecx
52493f:	e9 e4 fe ff ff       	jmp    0x524828
524944:	83 bd 54 ff ff ff ff 	cmpl   $0xffffffff,-0xac(%ebp)
52494b:	75 09                	jne    0x524956
52494d:	8b 45 ec             	mov    -0x14(%ebp),%eax
524950:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
524956:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
52495a:	74 06                	je     0x524962
52495c:	ff 85 64 ff ff ff    	incl   -0x9c(%ebp)
524962:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
524966:	75 14                	jne    0x52497c
524968:	8b 45 d8             	mov    -0x28(%ebp),%eax
52496b:	3b 45 c0             	cmp    -0x40(%ebp),%eax
52496e:	75 0c                	jne    0x52497c
524970:	55                   	push   %ebp
524971:	e8 ce f6 ff ff       	call   0x524044
524976:	59                   	pop    %ecx
524977:	e9 ac fe ff ff       	jmp    0x524828
52497c:	55                   	push   %ebp
52497d:	e8 7a f8 ff ff       	call   0x5241fc
524982:	59                   	pop    %ecx
524983:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
524987:	74 29                	je     0x5249b2
524989:	8b 45 e4             	mov    -0x1c(%ebp),%eax
52498c:	03 85 7c ff ff ff    	add    -0x84(%ebp),%eax
524992:	83 c0 02             	add    $0x2,%eax
524995:	3b 45 0c             	cmp    0xc(%ebp),%eax
524998:	7c 18                	jl     0x5249b2
52499a:	55                   	push   %ebp
52499b:	e8 9c f7 ff ff       	call   0x52413c
5249a0:	59                   	pop    %ecx
5249a1:	8b 45 c0             	mov    -0x40(%ebp),%eax
5249a4:	3b 45 d8             	cmp    -0x28(%ebp),%eax
5249a7:	0f 84 81 03 00 00    	je     0x524d2e
5249ad:	e9 76 fe ff ff       	jmp    0x524828
5249b2:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
5249b6:	0f 85 47 03 00 00    	jne    0x524d03
5249bc:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
5249c2:	03 c6                	add    %esi,%eax
5249c4:	03 45 e4             	add    -0x1c(%ebp),%eax
5249c7:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
5249cd:	8b 45 10             	mov    0x10(%ebp),%eax
5249d0:	03 85 44 ff ff ff    	add    -0xbc(%ebp),%eax
5249d6:	8b 55 d0             	mov    -0x30(%ebp),%edx
5249d9:	03 55 d4             	add    -0x2c(%ebp),%edx
5249dc:	2b 55 c4             	sub    -0x3c(%ebp),%edx
5249df:	03 c2                	add    %edx,%eax
5249e1:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
5249e7:	8b 45 10             	mov    0x10(%ebp),%eax
5249ea:	03 85 44 ff ff ff    	add    -0xbc(%ebp),%eax
5249f0:	03 45 08             	add    0x8(%ebp),%eax
5249f3:	3b 85 5c ff ff ff    	cmp    -0xa4(%ebp),%eax
5249f9:	0f 8e 48 02 00 00    	jle    0x524c47
5249ff:	c6 85 37 ff ff ff 00 	movb   $0x0,-0xc9(%ebp)
524a06:	8b 07                	mov    (%edi),%eax
524a08:	8b 80 48 02 00 00    	mov    0x248(%eax),%eax
524a0e:	3b 45 ec             	cmp    -0x14(%ebp),%eax
524a11:	7f 5d                	jg     0x524a70
524a13:	8b 07                	mov    (%edi),%eax
524a15:	8b 80 4c 02 00 00    	mov    0x24c(%eax),%eax
524a1b:	3b 45 ec             	cmp    -0x14(%ebp),%eax
524a1e:	7e 50                	jle    0x524a70
524a20:	8b 45 84             	mov    -0x7c(%ebp),%eax
524a23:	8b 40 14             	mov    0x14(%eax),%eax
524a26:	e8 51 38 f0 ff       	call   0x42827c
524a2b:	8b d0                	mov    %eax,%edx
524a2d:	f7 d2                	not    %edx
524a2f:	81 e2 ff ff ff 00    	and    $0xffffff,%edx
524a35:	8b 45 84             	mov    -0x7c(%ebp),%eax
524a38:	8b 40 14             	mov    0x14(%eax),%eax
524a3b:	e8 44 38 f0 ff       	call   0x428284
524a40:	8b 45 84             	mov    -0x7c(%ebp),%eax
524a43:	8b 40 0c             	mov    0xc(%eax),%eax
524a46:	8b 50 18             	mov    0x18(%eax),%edx
524a49:	f7 d2                	not    %edx
524a4b:	81 e2 ff ff ff 00    	and    $0xffffff,%edx
524a51:	8b 45 84             	mov    -0x7c(%ebp),%eax
524a54:	8b 40 0c             	mov    0xc(%eax),%eax
524a57:	e8 3c 30 f0 ff       	call   0x427a98
524a5c:	8b 45 84             	mov    -0x7c(%ebp),%eax
524a5f:	8b 40 14             	mov    0x14(%eax),%eax
524a62:	33 d2                	xor    %edx,%edx
524a64:	e8 37 39 f0 ff       	call   0x4283a0
524a69:	c6 85 37 ff ff ff 01 	movb   $0x1,-0xc9(%ebp)
524a70:	8b 45 e8             	mov    -0x18(%ebp),%eax
524a73:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
524a76:	74 7f                	je     0x524af7
524a78:	8b 45 e0             	mov    -0x20(%ebp),%eax
524a7b:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
524a7e:	7d 77                	jge    0x524af7
524a80:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
524a86:	03 c6                	add    %esi,%eax
524a88:	03 45 e0             	add    -0x20(%ebp),%eax
524a8b:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
524a91:	85 db                	test   %ebx,%ebx
524a93:	74 26                	je     0x524abb
524a95:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
524a9b:	89 03                	mov    %eax,(%ebx)
524a9d:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
524aa3:	89 43 04             	mov    %eax,0x4(%ebx)
524aa6:	c6 43 08 20          	movb   $0x20,0x8(%ebx)
524aaa:	8b 45 ec             	mov    -0x14(%ebp),%eax
524aad:	89 43 0c             	mov    %eax,0xc(%ebx)
524ab0:	ff 85 38 ff ff ff    	incl   -0xc8(%ebp)
524ab6:	83 c3 10             	add    $0x10,%ebx
524ab9:	eb 31                	jmp    0x524aec
524abb:	8b 45 84             	mov    -0x7c(%ebp),%eax
524abe:	8b 40 14             	mov    0x14(%eax),%eax
524ac1:	b2 01                	mov    $0x1,%dl
524ac3:	e8 d8 38 f0 ff       	call   0x4283a0
524ac8:	8b 45 84             	mov    -0x7c(%ebp),%eax
524acb:	8b 40 0c             	mov    0xc(%eax),%eax
524ace:	e8 75 d3 ff ff       	call   0x521e48
524ad3:	68 c4 53 52 00       	push   $0x5253c4
524ad8:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
524ade:	8b 95 58 ff ff ff    	mov    -0xa8(%ebp),%edx
524ae4:	8b 45 84             	mov    -0x7c(%ebp),%eax
524ae7:	e8 a0 3e f0 ff       	call   0x42898c
524aec:	ff 45 e0             	incl   -0x20(%ebp)
524aef:	8b 45 e0             	mov    -0x20(%ebp),%eax
524af2:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
524af5:	7c 89                	jl     0x524a80
524af7:	85 db                	test   %ebx,%ebx
524af9:	74 2d                	je     0x524b28
524afb:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
524b01:	89 03                	mov    %eax,(%ebx)
524b03:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
524b09:	89 43 04             	mov    %eax,0x4(%ebx)
524b0c:	8b 45 d8             	mov    -0x28(%ebp),%eax
524b0f:	8a 00                	mov    (%eax),%al
524b11:	88 43 08             	mov    %al,0x8(%ebx)
524b14:	8b 45 ec             	mov    -0x14(%ebp),%eax
524b17:	89 43 0c             	mov    %eax,0xc(%ebx)
524b1a:	83 c3 10             	add    $0x10,%ebx
524b1d:	ff 85 38 ff ff ff    	incl   -0xc8(%ebp)
524b23:	e9 f0 00 00 00       	jmp    0x524c18
524b28:	80 bd 37 ff ff ff 00 	cmpb   $0x0,-0xc9(%ebp)
524b2f:	74 0f                	je     0x524b40
524b31:	8b 45 84             	mov    -0x7c(%ebp),%eax
524b34:	8b 40 14             	mov    0x14(%eax),%eax
524b37:	33 d2                	xor    %edx,%edx
524b39:	e8 62 38 f0 ff       	call   0x4283a0
524b3e:	eb 0d                	jmp    0x524b4d
524b40:	8b 45 84             	mov    -0x7c(%ebp),%eax
524b43:	8b 40 14             	mov    0x14(%eax),%eax
524b46:	b2 01                	mov    $0x1,%dl
524b48:	e8 53 38 f0 ff       	call   0x4283a0
524b4d:	8b 45 84             	mov    -0x7c(%ebp),%eax
524b50:	8b 40 0c             	mov    0xc(%eax),%eax
524b53:	e8 f0 d2 ff ff       	call   0x521e48
524b58:	8b 55 ec             	mov    -0x14(%ebp),%edx
524b5b:	8b 07                	mov    (%edi),%eax
524b5d:	e8 6e f2 ff ff       	call   0x523dd0
524b62:	85 c0                	test   %eax,%eax
524b64:	75 30                	jne    0x524b96
524b66:	8d 85 20 ff ff ff    	lea    -0xe0(%ebp),%eax
524b6c:	8b 55 d8             	mov    -0x28(%ebp),%edx
524b6f:	8a 12                	mov    (%edx),%dl
524b71:	e8 d2 fe ed ff       	call   0x404a48
524b76:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
524b7c:	50                   	push   %eax
524b7d:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
524b83:	8b 95 60 ff ff ff    	mov    -0xa0(%ebp),%edx
524b89:	8b 45 84             	mov    -0x7c(%ebp),%eax
524b8c:	e8 fb 3d f0 ff       	call   0x42898c
524b91:	e9 82 00 00 00       	jmp    0x524c18
524b96:	8b 55 ec             	mov    -0x14(%ebp),%edx
524b99:	8b 07                	mov    (%edi),%eax
524b9b:	e8 30 f2 ff ff       	call   0x523dd0
524ba0:	83 f8 02             	cmp    $0x2,%eax
524ba3:	75 73                	jne    0x524c18
524ba5:	8d 85 18 ff ff ff    	lea    -0xe8(%ebp),%eax
524bab:	8b 55 d8             	mov    -0x28(%ebp),%edx
524bae:	4a                   	dec    %edx
524baf:	8a 12                	mov    (%edx),%dl
524bb1:	88 50 01             	mov    %dl,0x1(%eax)
524bb4:	c6 00 01             	movb   $0x1,(%eax)
524bb7:	8d 95 18 ff ff ff    	lea    -0xe8(%ebp),%edx
524bbd:	8d 85 14 ff ff ff    	lea    -0xec(%ebp),%eax
524bc3:	e8 5c e5 ed ff       	call   0x403124
524bc8:	8d 85 10 ff ff ff    	lea    -0xf0(%ebp),%eax
524bce:	8b 55 d8             	mov    -0x28(%ebp),%edx
524bd1:	8a 12                	mov    (%edx),%dl
524bd3:	88 50 01             	mov    %dl,0x1(%eax)
524bd6:	c6 00 01             	movb   $0x1,(%eax)
524bd9:	8d 95 10 ff ff ff    	lea    -0xf0(%ebp),%edx
524bdf:	8d 85 14 ff ff ff    	lea    -0xec(%ebp),%eax
524be5:	b1 02                	mov    $0x2,%cl
524be7:	e8 08 e5 ed ff       	call   0x4030f4
524bec:	8d 95 14 ff ff ff    	lea    -0xec(%ebp),%edx
524bf2:	8d 85 1c ff ff ff    	lea    -0xe4(%ebp),%eax
524bf8:	e8 c7 fe ed ff       	call   0x404ac4
524bfd:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
524c03:	50                   	push   %eax
524c04:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
524c0a:	8b 95 60 ff ff ff    	mov    -0xa0(%ebp),%edx
524c10:	8b 45 84             	mov    -0x7c(%ebp),%eax
524c13:	e8 74 3d f0 ff       	call   0x42898c
524c18:	8b 07                	mov    (%edi),%eax
524c1a:	80 b8 84 02 00 00 00 	cmpb   $0x0,0x284(%eax)
524c21:	74 66                	je     0x524c89
524c23:	8d 85 0c ff ff ff    	lea    -0xf4(%ebp),%eax
524c29:	8b 55 d8             	mov    -0x28(%ebp),%edx
524c2c:	8a 12                	mov    (%edx),%dl
524c2e:	e8 15 fe ed ff       	call   0x404a48
524c33:	8b 95 0c ff ff ff    	mov    -0xf4(%ebp),%edx
524c39:	8b 07                	mov    (%edi),%eax
524c3b:	05 88 02 00 00       	add    $0x288,%eax
524c40:	e8 e3 fe ed ff       	call   0x404b28
524c45:	eb 42                	jmp    0x524c89
524c47:	8b 07                	mov    (%edi),%eax
524c49:	80 b8 5e 02 00 00 00 	cmpb   $0x0,0x25e(%eax)
524c50:	74 37                	je     0x524c89
524c52:	8b 07                	mov    (%edi),%eax
524c54:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
524c58:	74 2f                	je     0x524c89
524c5a:	8b 07                	mov    (%edi),%eax
524c5c:	8b 50 4c             	mov    0x4c(%eax),%edx
524c5f:	03 95 78 ff ff ff    	add    -0x88(%ebp),%edx
524c65:	8b 07                	mov    (%edi),%eax
524c67:	e8 18 33 f2 ff       	call   0x447f84
524c6c:	83 bd 40 ff ff ff 00 	cmpl   $0x0,-0xc0(%ebp)
524c73:	0f 84 de 06 00 00    	je     0x525357
524c79:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
524c7f:	e8 48 db ed ff       	call   0x4027cc
524c84:	e9 ce 06 00 00       	jmp    0x525357
524c89:	ff 85 6c ff ff ff    	incl   -0x94(%ebp)
524c8f:	8b 07                	mov    (%edi),%eax
524c91:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
524c97:	3b 45 ec             	cmp    -0x14(%ebp),%eax
524c9a:	75 2b                	jne    0x524cc7
524c9c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
524c9f:	03 c6                	add    %esi,%eax
524ca1:	8b 17                	mov    (%edi),%edx
524ca3:	89 82 20 02 00 00    	mov    %eax,0x220(%edx)
524ca9:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
524caf:	03 45 d0             	add    -0x30(%ebp),%eax
524cb2:	8b 17                	mov    (%edi),%edx
524cb4:	89 82 24 02 00 00    	mov    %eax,0x224(%edx)
524cba:	8b 07                	mov    (%edi),%eax
524cbc:	8b 55 d4             	mov    -0x2c(%ebp),%edx
524cbf:	89 90 28 02 00 00    	mov    %edx,0x228(%eax)
524cc5:	eb 3c                	jmp    0x524d03
524cc7:	8b 07                	mov    (%edi),%eax
524cc9:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
524ccf:	3b 45 ec             	cmp    -0x14(%ebp),%eax
524cd2:	7e 2f                	jle    0x524d03
524cd4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
524cd7:	03 c6                	add    %esi,%eax
524cd9:	03 85 7c ff ff ff    	add    -0x84(%ebp),%eax
524cdf:	8b 17                	mov    (%edi),%edx
524ce1:	89 82 20 02 00 00    	mov    %eax,0x220(%edx)
524ce7:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
524ced:	03 45 d0             	add    -0x30(%ebp),%eax
524cf0:	8b 17                	mov    (%edi),%edx
524cf2:	89 82 24 02 00 00    	mov    %eax,0x224(%edx)
524cf8:	8b 07                	mov    (%edi),%eax
524cfa:	8b 55 d4             	mov    -0x2c(%ebp),%edx
524cfd:	89 90 28 02 00 00    	mov    %edx,0x228(%eax)
524d03:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
524d09:	01 45 e8             	add    %eax,-0x18(%ebp)
524d0c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
524d0f:	03 85 7c ff ff ff    	add    -0x84(%ebp),%eax
524d15:	89 45 e0             	mov    %eax,-0x20(%ebp)
524d18:	db 45 e8             	fildl  -0x18(%ebp)
524d1b:	dc 4d f8             	fmull  -0x8(%ebp)
524d1e:	e8 a9 df ed ff       	call   0x402ccc
524d23:	89 45 e4             	mov    %eax,-0x1c(%ebp)
524d26:	ff 45 d8             	incl   -0x28(%ebp)
524d29:	e9 fa fa ff ff       	jmp    0x524828
524d2e:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
524d34:	03 85 64 ff ff ff    	add    -0x9c(%ebp),%eax
524d3a:	03 85 68 ff ff ff    	add    -0x98(%ebp),%eax
524d40:	85 c0                	test   %eax,%eax
524d42:	75 2b                	jne    0x524d6f
524d44:	8d 06                	lea    (%esi),%eax
524d46:	8b 17                	mov    (%edi),%edx
524d48:	89 82 20 02 00 00    	mov    %eax,0x220(%edx)
524d4e:	8b 45 84             	mov    -0x7c(%ebp),%eax
524d51:	8b 40 0c             	mov    0xc(%eax),%eax
524d54:	e8 1f 2f f0 ff       	call   0x427c78
524d59:	8b 17                	mov    (%edi),%edx
524d5b:	89 82 28 02 00 00    	mov    %eax,0x228(%edx)
524d61:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
524d67:	8b 17                	mov    (%edi),%edx
524d69:	89 82 24 02 00 00    	mov    %eax,0x224(%edx)
524d6f:	8b 07                	mov    (%edi),%eax
524d71:	83 b8 14 02 00 00 00 	cmpl   $0x0,0x214(%eax)
524d78:	74 6c                	je     0x524de6
524d7a:	8b 07                	mov    (%edi),%eax
524d7c:	83 b8 18 02 00 00 00 	cmpl   $0x0,0x218(%eax)
524d83:	75 16                	jne    0x524d9b
524d85:	8b 07                	mov    (%edi),%eax
524d87:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
524d8d:	8b 17                	mov    (%edi),%edx
524d8f:	8b 92 10 02 00 00    	mov    0x210(%edx),%edx
524d95:	80 3c 02 0a          	cmpb   $0xa,(%edx,%eax,1)
524d99:	74 4b                	je     0x524de6
524d9b:	8b 07                	mov    (%edi),%eax
524d9d:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
524da3:	8b 17                	mov    (%edi),%edx
524da5:	8b 92 10 02 00 00    	mov    0x210(%edx),%edx
524dab:	80 7c 02 ff 0a       	cmpb   $0xa,-0x1(%edx,%eax,1)
524db0:	0f 85 09 01 00 00    	jne    0x524ebf
524db6:	8b 07                	mov    (%edi),%eax
524db8:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
524dbe:	8b 17                	mov    (%edi),%edx
524dc0:	8b 92 10 02 00 00    	mov    0x210(%edx),%edx
524dc6:	80 3c 02 0a          	cmpb   $0xa,(%edx,%eax,1)
524dca:	74 1a                	je     0x524de6
524dcc:	8b 07                	mov    (%edi),%eax
524dce:	8b 80 18 02 00 00    	mov    0x218(%eax),%eax
524dd4:	8b 17                	mov    (%edi),%edx
524dd6:	8b 92 10 02 00 00    	mov    0x210(%edx),%edx
524ddc:	80 3c 02 00          	cmpb   $0x0,(%edx,%eax,1)
524de0:	0f 85 d9 00 00 00    	jne    0x524ebf
524de6:	8b 07                	mov    (%edi),%eax
524de8:	8b 80 58 02 00 00    	mov    0x258(%eax),%eax
524dee:	8a 80 15 01 00 00    	mov    0x115(%eax),%al
524df4:	88 85 2f ff ff ff    	mov    %al,-0xd1(%ebp)
524dfa:	80 bd 2f ff ff ff 02 	cmpb   $0x2,-0xd1(%ebp)
524e01:	75 1c                	jne    0x524e1f
524e03:	8b 45 0c             	mov    0xc(%ebp),%eax
524e06:	83 e8 02             	sub    $0x2,%eax
524e09:	d1 f8                	sar    $1,%eax
524e0b:	79 03                	jns    0x524e10
524e0d:	83 d0 00             	adc    $0x0,%eax
524e10:	03 f0                	add    %eax,%esi
524e12:	83 ee 03             	sub    $0x3,%esi
524e15:	8b 07                	mov    (%edi),%eax
524e17:	89 b0 20 02 00 00    	mov    %esi,0x220(%eax)
524e1d:	eb 1f                	jmp    0x524e3e
524e1f:	80 bd 2f ff ff ff 01 	cmpb   $0x1,-0xd1(%ebp)
524e26:	75 0e                	jne    0x524e36
524e28:	8b 45 0c             	mov    0xc(%ebp),%eax