598a07:	ff 75 e0             	push   -0x20(%ebp)
598a0a:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a0d:	e8 c6 5c e8 ff       	call   0x41e6d8
598a12:	0f b7 5d f6          	movzwl -0xa(%ebp),%ebx
598a16:	4b                   	dec    %ebx
598a17:	85 db                	test   %ebx,%ebx
598a19:	7c 2b                	jl     0x598a46
598a1b:	43                   	inc    %ebx
598a1c:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
598a23:	8d 55 88             	lea    -0x78(%ebp),%edx
598a26:	b9 10 00 00 00       	mov    $0x10,%ecx
598a2b:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a2e:	8b 38                	mov    (%eax),%edi
598a30:	ff 57 08             	call   *0x8(%edi)
598a33:	8b 06                	mov    (%esi),%eax
598a35:	8b 80 04 01 00 00    	mov    0x104(%eax),%eax
598a3b:	3b 45 dc             	cmp    -0x24(%ebp),%eax
598a3e:	74 06                	je     0x598a46
598a40:	ff 45 dc             	incl   -0x24(%ebp)
598a43:	4b                   	dec    %ebx
598a44:	75 dd                	jne    0x598a23
598a46:	8b 45 94             	mov    -0x6c(%ebp),%eax
598a49:	33 d2                	xor    %edx,%edx
598a4b:	03 45 e8             	add    -0x18(%ebp),%eax
598a4e:	13 55 ec             	adc    -0x14(%ebp),%edx
598a51:	52                   	push   %edx
598a52:	50                   	push   %eax
598a53:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a56:	e8 7d 5c e8 ff       	call   0x41e6d8
598a5b:	8d 95 60 ff ff ff    	lea    -0xa0(%ebp),%edx
598a61:	b9 28 00 00 00       	mov    $0x28,%ecx
598a66:	8b 45 fc             	mov    -0x4(%ebp),%eax
598a69:	8b 18                	mov    (%eax),%ebx
598a6b:	ff 53 08             	call   *0x8(%ebx)
598a6e:	83 bd 78 ff ff ff 00 	cmpl   $0x0,-0x88(%ebp)
598a75:	7e 24                	jle    0x598a9b
598a77:	db 85 78 ff ff ff    	fildl  -0x88(%ebp)
598a7d:	d8 35 fc 94 59 00    	fdivs  0x5994fc
598a83:	db 2d 00 95 59 00    	fldt   0x599500
598a89:	de c9                	fmulp  %st,%st(1)
598a8b:	e8 30 a2 e6 ff       	call   0x402cc0
598a90:	8b d0                	mov    %eax,%edx
598a92:	8b 06                	mov    (%esi),%eax
598a94:	e8 23 4c 03 00       	call   0x5cd6bc
598a99:	eb 0f                	jmp    0x598aaa
598a9b:	8b 15 9c 71 6a 00    	mov    0x6a719c,%edx
598aa1:	8b 12                	mov    (%edx),%edx
598aa3:	8b 06                	mov    (%esi),%eax
598aa5:	e8 12 4c 03 00       	call   0x5cd6bc
598aaa:	83 bd 7c ff ff ff 00 	cmpl   $0x0,-0x84(%ebp)
598ab1:	7e 24                	jle    0x598ad7
598ab3:	db 85 7c ff ff ff    	fildl  -0x84(%ebp)
598ab9:	d8 35 fc 94 59 00    	fdivs  0x5994fc
598abf:	db 2d 00 95 59 00    	fldt   0x599500
598ac5:	de c9                	fmulp  %st,%st(1)
598ac7:	e8 f4 a1 e6 ff       	call   0x402cc0
598acc:	8b d0                	mov    %eax,%edx
598ace:	8b 06                	mov    (%esi),%eax
598ad0:	e8 17 4c 03 00       	call   0x5cd6ec
598ad5:	eb 0f                	jmp    0x598ae6
598ad7:	8b 15 00 71 6a 00    	mov    0x6a7100,%edx
598add:	8b 12                	mov    (%edx),%edx
598adf:	8b 06                	mov    (%esi),%eax
598ae1:	e8 06 4c 03 00       	call   0x5cd6ec
598ae6:	33 c0                	xor    %eax,%eax
598ae8:	89 45 cc             	mov    %eax,-0x34(%ebp)
598aeb:	66 83 7d 8e 00       	cmpw   $0x0,-0x72(%ebp)
598af0:	76 07                	jbe    0x598af9
598af2:	0f b7 45 8e          	movzwl -0x72(%ebp),%eax
598af6:	89 45 cc             	mov    %eax,-0x34(%ebp)
598af9:	66 83 bd 6e ff ff ff 	cmpw   $0x0,-0x92(%ebp)
598b00:	00
598b01:	76 0a                	jbe    0x598b0d
598b03:	0f b7 85 6e ff ff ff 	movzwl -0x92(%ebp),%eax
598b0a:	89 45 cc             	mov    %eax,-0x34(%ebp)
598b0d:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
598b11:	75 23                	jne    0x598b36
598b13:	80 7d 8a 00          	cmpb   $0x0,-0x76(%ebp)
598b17:	76 0f                	jbe    0x598b28
598b19:	33 c0                	xor    %eax,%eax
598b1b:	8a 45 8a             	mov    -0x76(%ebp),%al
598b1e:	e8 91 7f 05 00       	call   0x5f0ab4
598b23:	89 45 cc             	mov    %eax,-0x34(%ebp)
598b26:	eb 0e                	jmp    0x598b36
598b28:	8b 45 10             	mov    0x10(%ebp),%eax
598b2b:	8b 40 28             	mov    0x28(%eax),%eax
598b2e:	c6 00 01             	movb   $0x1,(%eax)
598b31:	e9 bb 09 00 00       	jmp    0x5994f1
598b36:	8b 4d cc             	mov    -0x34(%ebp),%ecx
598b39:	b8 01 00 00 00       	mov    $0x1,%eax
598b3e:	d3 e0                	shl    %cl,%eax
598b40:	89 45 bc             	mov    %eax,-0x44(%ebp)
598b43:	83 7d cc 08          	cmpl   $0x8,-0x34(%ebp)
598b47:	7f 13                	jg     0x598b5c
598b49:	8b 06                	mov    (%esi),%eax
598b4b:	8b 55 cc             	mov    -0x34(%ebp),%edx
598b4e:	89 50 08             	mov    %edx,0x8(%eax)
598b51:	8b 06                	mov    (%esi),%eax
598b53:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
598b5a:	eb 23                	jmp    0x598b7f
598b5c:	8b 06                	mov    (%esi),%eax
598b5e:	c7 40 08 08 00 00 00 	movl   $0x8,0x8(%eax)
598b65:	83 7d cc 20          	cmpl   $0x20,-0x34(%ebp)
598b69:	75 0b                	jne    0x598b76
598b6b:	8b 06                	mov    (%esi),%eax
598b6d:	c7 40 10 04 00 00 00 	movl   $0x4,0x10(%eax)
598b74:	eb 09                	jmp    0x598b7f
598b76:	8b 06                	mov    (%esi),%eax
598b78:	c7 40 10 03 00 00 00 	movl   $0x3,0x10(%eax)
598b7f:	33 c0                	xor    %eax,%eax
598b81:	8a 45 88             	mov    -0x78(%ebp),%al
598b84:	89 45 b4             	mov    %eax,-0x4c(%ebp)
598b87:	33 c0                	xor    %eax,%eax
598b89:	8a 45 89             	mov    -0x77(%ebp),%al
598b8c:	89 45 b8             	mov    %eax,-0x48(%ebp)
598b8f:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
598b93:	75 09                	jne    0x598b9e
598b95:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
598b9b:	89 45 b4             	mov    %eax,-0x4c(%ebp)
598b9e:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
598ba2:	75 0b                	jne    0x598baf
598ba4:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
598baa:	d1 e8                	shr    $1,%eax
598bac:	89 45 b8             	mov    %eax,-0x48(%ebp)
598baf:	33 d2                	xor    %edx,%edx
598bb1:	8a 55 88             	mov    -0x78(%ebp),%dl
598bb4:	8b 85 64 ff ff ff    	mov    -0x9c(%ebp),%eax
598bba:	3b d0                	cmp    %eax,%edx
598bbc:	74 2b                	je     0x598be9
598bbe:	80 7d 88 00          	cmpb   $0x0,-0x78(%ebp)
598bc2:	74 25                	je     0x598be9
598bc4:	85 c0                	test   %eax,%eax
598bc6:	74 21                	je     0x598be9
598bc8:	3d 00 08 00 00       	cmp    $0x800,%eax
598bcd:	7d 1a                	jge    0x598be9
598bcf:	81 bd 68 ff ff ff 00 	cmpl   $0x800,-0x98(%ebp)
598bd6:	08 00 00
598bd9:	7d 0e                	jge    0x598be9
598bdb:	89 45 b4             	mov    %eax,-0x4c(%ebp)
598bde:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
598be4:	d1 e8                	shr    $1,%eax
598be6:	89 45 b8             	mov    %eax,-0x48(%ebp)
598be9:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598bec:	f7 6d cc             	imull  -0x34(%ebp)
598bef:	83 c0 1f             	add    $0x1f,%eax
598bf2:	c1 e8 05             	shr    $0x5,%eax
598bf5:	c1 e0 02             	shl    $0x2,%eax
598bf8:	89 45 d4             	mov    %eax,-0x2c(%ebp)
598bfb:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598bfe:	83 c0 1f             	add    $0x1f,%eax
598c01:	c1 e8 05             	shr    $0x5,%eax
598c04:	c1 e0 02             	shl    $0x2,%eax
598c07:	89 45 a8             	mov    %eax,-0x58(%ebp)
598c0a:	8b 06                	mov    (%esi),%eax
598c0c:	83 b8 a8 03 00 00 00 	cmpl   $0x0,0x3a8(%eax)
598c13:	74 21                	je     0x598c36
598c15:	8b 06                	mov    (%esi),%eax
598c17:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
598c1d:	e8 aa 9b e6 ff       	call   0x4027cc
598c22:	8b 06                	mov    (%esi),%eax
598c24:	33 d2                	xor    %edx,%edx
598c26:	89 90 a8 03 00 00    	mov    %edx,0x3a8(%eax)
598c2c:	8b 06                	mov    (%esi),%eax
598c2e:	33 d2                	xor    %edx,%edx
598c30:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
598c36:	83 7d cc 08          	cmpl   $0x8,-0x34(%ebp)
598c3a:	0f 8f 87 00 00 00    	jg     0x598cc7
598c40:	8b 4d bc             	mov    -0x44(%ebp),%ecx
598c43:	c1 e1 02             	shl    $0x2,%ecx
598c46:	8d 95 60 fb ff ff    	lea    -0x4a0(%ebp),%edx
598c4c:	8b 45 fc             	mov    -0x4(%ebp),%eax
598c4f:	8b 18                	mov    (%eax),%ebx
598c51:	ff 53 08             	call   *0x8(%ebx)
598c54:	8b 06                	mov    (%esi),%eax
598c56:	8b 55 bc             	mov    -0x44(%ebp),%edx
598c59:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
598c5f:	8b 45 bc             	mov    -0x44(%ebp),%eax
598c62:	8d 04 40             	lea    (%eax,%eax,2),%eax
598c65:	e8 4a 04 e7 ff       	call   0x4090b4
598c6a:	8b 16                	mov    (%esi),%edx
598c6c:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
598c72:	8b 5d bc             	mov    -0x44(%ebp),%ebx
598c75:	4b                   	dec    %ebx
598c76:	85 db                	test   %ebx,%ebx
598c78:	7c 4d                	jl     0x598cc7
598c7a:	43                   	inc    %ebx
598c7b:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
598c82:	8d 85 62 fb ff ff    	lea    -0x49e(%ebp),%eax
598c88:	8b 55 dc             	mov    -0x24(%ebp),%edx
598c8b:	8d 14 52             	lea    (%edx,%edx,2),%edx
598c8e:	8b 0e                	mov    (%esi),%ecx
598c90:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
598c96:	8d 7c 11 02          	lea    0x2(%ecx,%edx,1),%edi
598c9a:	8a 08                	mov    (%eax),%cl
598c9c:	88 0f                	mov    %cl,(%edi)
598c9e:	8b 0e                	mov    (%esi),%ecx
598ca0:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
598ca6:	8d 7c 11 01          	lea    0x1(%ecx,%edx,1),%edi
598caa:	8a 48 ff             	mov    -0x1(%eax),%cl
598cad:	88 0f                	mov    %cl,(%edi)
598caf:	8b 0e                	mov    (%esi),%ecx
598cb1:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
598cb7:	03 ca                	add    %edx,%ecx
598cb9:	8a 50 fe             	mov    -0x2(%eax),%dl
598cbc:	88 11                	mov    %dl,(%ecx)
598cbe:	ff 45 dc             	incl   -0x24(%ebp)
598cc1:	83 c0 04             	add    $0x4,%eax
598cc4:	4b                   	dec    %ebx
598cc5:	75 c1                	jne    0x598c88
598cc7:	8b 06                	mov    (%esi),%eax
598cc9:	8b 55 b4             	mov    -0x4c(%ebp),%edx
598ccc:	89 50 14             	mov    %edx,0x14(%eax)
598ccf:	8b 06                	mov    (%esi),%eax
598cd1:	8b 55 b8             	mov    -0x48(%ebp),%edx
598cd4:	89 50 18             	mov    %edx,0x18(%eax)
598cd7:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
598cdb:	0f 85 10 08 00 00    	jne    0x5994f1
598ce1:	83 7d bc 02          	cmpl   $0x2,-0x44(%ebp)
598ce5:	75 12                	jne    0x598cf9
598ce7:	6a 01                	push   $0x1
598ce9:	8b 4d b8             	mov    -0x48(%ebp),%ecx
598cec:	8b 55 b4             	mov    -0x4c(%ebp),%edx
598cef:	8b 45 f8             	mov    -0x8(%ebp),%eax
598cf2:	8b 18                	mov    (%eax),%ebx
598cf4:	ff 53 24             	call   *0x24(%ebx)
598cf7:	eb 10                	jmp    0x598d09
598cf9:	6a 05                	push   $0x5
598cfb:	8b 4d b8             	mov    -0x48(%ebp),%ecx
598cfe:	8b 55 b4             	mov    -0x4c(%ebp),%edx
598d01:	8b 45 f8             	mov    -0x8(%ebp),%eax
598d04:	8b 18                	mov    (%eax),%ebx
598d06:	ff 53 24             	call   *0x24(%ebx)
598d09:	8a 45 08             	mov    0x8(%ebp),%al
598d0c:	34 01                	xor    $0x1,%al
598d0e:	84 c0                	test   %al,%al
598d10:	74 43                	je     0x598d55
598d12:	8b 45 0c             	mov    0xc(%ebp),%eax
598d15:	83 38 00             	cmpl   $0x0,(%eax)
598d18:	75 11                	jne    0x598d2b
598d1a:	b2 01                	mov    $0x1,%dl
598d1c:	a1 a4 fd 5e 00       	mov    0x5efda4,%eax
598d21:	e8 4e 9e 05 00       	call   0x5f2b74
598d26:	8b 55 0c             	mov    0xc(%ebp),%edx
598d29:	89 02                	mov    %eax,(%edx)
598d2b:	6a 08                	push   $0x8
598d2d:	8b 45 0c             	mov    0xc(%ebp),%eax
598d30:	8b 00                	mov    (%eax),%eax
598d32:	8b 4d b8             	mov    -0x48(%ebp),%ecx
598d35:	8b 55 b4             	mov    -0x4c(%ebp),%edx
598d38:	e8 03 a2 05 00       	call   0x5f2f40
598d3d:	8b 45 0c             	mov    0xc(%ebp),%eax
598d40:	8b 00                	mov    (%eax),%eax
598d42:	ba ff 00 00 00       	mov    $0xff,%edx
598d47:	e8 d8 b9 05 00       	call   0x5f4724
598d4c:	8b 45 0c             	mov    0xc(%ebp),%eax
598d4f:	8b 00                	mov    (%eax),%eax
598d51:	c6 40 68 00          	movb   $0x0,0x68(%eax)
598d55:	8b 45 f8             	mov    -0x8(%ebp),%eax
598d58:	8b 10                	mov    (%eax),%edx
598d5a:	ff 52 08             	call   *0x8(%edx)
598d5d:	f7 6d a8             	imull  -0x58(%ebp)
598d60:	e8 47 9a e6 ff       	call   0x4027ac
598d65:	89 45 ac             	mov    %eax,-0x54(%ebp)
598d68:	8b 45 ac             	mov    -0x54(%ebp),%eax
598d6b:	89 45 b0             	mov    %eax,-0x50(%ebp)
598d6e:	8b 45 cc             	mov    -0x34(%ebp),%eax
598d71:	83 f8 08             	cmp    $0x8,%eax
598d74:	7f 17                	jg     0x598d8d
598d76:	0f 84 85 04 00 00    	je     0x599201
598d7c:	48                   	dec    %eax
598d7d:	74 25                	je     0x598da4
598d7f:	83 e8 03             	sub    $0x3,%eax
598d82:	0f 84 92 01 00 00    	je     0x598f1a
598d88:	e9 30 07 00 00       	jmp    0x5994bd
598d8d:	83 e8 18             	sub    $0x18,%eax
598d90:	0f 84 4d 06 00 00    	je     0x5993e3
598d96:	83 e8 08             	sub    $0x8,%eax
598d99:	0f 84 7e 06 00 00    	je     0x59941d
598d9f:	e9 19 07 00 00       	jmp    0x5994bd
598da4:	8b 45 f8             	mov    -0x8(%ebp),%eax
598da7:	8b 10                	mov    (%eax),%edx
598da9:	ff 52 08             	call   *0x8(%edx)
598dac:	48                   	dec    %eax
598dad:	89 45 9c             	mov    %eax,-0x64(%ebp)
598db0:	8b 45 9c             	mov    -0x64(%ebp),%eax
598db3:	83 f8 00             	cmp    $0x0,%eax
598db6:	7c 23                	jl     0x598ddb
598db8:	89 45 d8             	mov    %eax,-0x28(%ebp)
598dbb:	8b 55 d8             	mov    -0x28(%ebp),%edx
598dbe:	8b 45 f8             	mov    -0x8(%ebp),%eax
598dc1:	8b 08                	mov    (%eax),%ecx
598dc3:	ff 11                	call   *(%ecx)
598dc5:	8b d0                	mov    %eax,%edx
598dc7:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
598dca:	8b 45 fc             	mov    -0x4(%ebp),%eax
598dcd:	8b 18                	mov    (%eax),%ebx
598dcf:	ff 53 08             	call   *0x8(%ebx)
598dd2:	ff 4d d8             	decl   -0x28(%ebp)
598dd5:	83 7d d8 ff          	cmpl   $0xffffffff,-0x28(%ebp)
598dd9:	75 e0                	jne    0x598dbb
598ddb:	8b 45 f8             	mov    -0x8(%ebp),%eax
598dde:	8b 10                	mov    (%eax),%edx
598de0:	ff 52 08             	call   *0x8(%edx)
598de3:	8b c8                	mov    %eax,%ecx
598de5:	0f af 4d a8          	imul   -0x58(%ebp),%ecx
598de9:	8b 55 ac             	mov    -0x54(%ebp),%edx
598dec:	8b 45 fc             	mov    -0x4(%ebp),%eax
598def:	8b 18                	mov    (%eax),%ebx
598df1:	ff 53 08             	call   *0x8(%ebx)
598df4:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
598df8:	75 53                	jne    0x598e4d
598dfa:	8b 45 f8             	mov    -0x8(%ebp),%eax
598dfd:	8b 10                	mov    (%eax),%edx
598dff:	ff 52 0c             	call   *0xc(%edx)
598e02:	48                   	dec    %eax
598e03:	89 45 a0             	mov    %eax,-0x60(%ebp)
598e06:	8b 45 9c             	mov    -0x64(%ebp),%eax
598e09:	83 f8 00             	cmp    $0x0,%eax
598e0c:	7c 3f                	jl     0x598e4d
598e0e:	89 45 d8             	mov    %eax,-0x28(%ebp)
598e11:	8b 5d a0             	mov    -0x60(%ebp),%ebx
598e14:	85 db                	test   %ebx,%ebx
598e16:	7c 26                	jl     0x598e3e
598e18:	43                   	inc    %ebx
598e19:	33 ff                	xor    %edi,%edi
598e1b:	8b d7                	mov    %edi,%edx
598e1d:	8b 45 b0             	mov    -0x50(%ebp),%eax
598e20:	e8 db 6c 01 00       	call   0x5afb00
598e25:	85 c0                	test   %eax,%eax
598e27:	74 11                	je     0x598e3a
598e29:	6a 00                	push   $0x0
598e2b:	8b 45 0c             	mov    0xc(%ebp),%eax
598e2e:	8b 00                	mov    (%eax),%eax
598e30:	8b 4d d8             	mov    -0x28(%ebp),%ecx
598e33:	8b d7                	mov    %edi,%edx
598e35:	e8 1e 9e 05 00       	call   0x5f2c58
598e3a:	47                   	inc    %edi
598e3b:	4b                   	dec    %ebx
598e3c:	75 dd                	jne    0x598e1b
598e3e:	8b 45 a8             	mov    -0x58(%ebp),%eax
598e41:	01 45 b0             	add    %eax,-0x50(%ebp)
598e44:	ff 4d d8             	decl   -0x28(%ebp)
598e47:	83 7d d8 ff          	cmpl   $0xffffffff,-0x28(%ebp)
598e4b:	75 c4                	jne    0x598e11
598e4d:	8b 45 ac             	mov    -0x54(%ebp),%eax
598e50:	89 45 b0             	mov    %eax,-0x50(%ebp)
598e53:	8b 06                	mov    (%esi),%eax
598e55:	8a 90 0a 01 00 00    	mov    0x10a(%eax),%dl
598e5b:	c1 e2 10             	shl    $0x10,%edx
598e5e:	66 8b 90 08 01 00 00 	mov    0x108(%eax),%dx