596af0:	83 78 20 00          	cmpl   $0x0,0x20(%eax)
596af4:	0f 86 8f 00 00 00    	jbe    0x596b89
596afa:	8b 45 f0             	mov    -0x10(%ebp),%eax
596afd:	8b 48 20             	mov    0x20(%eax),%ecx
596b00:	c1 e1 02             	shl    $0x2,%ecx
596b03:	8b 55 d0             	mov    -0x30(%ebp),%edx
596b06:	8b 45 fc             	mov    -0x4(%ebp),%eax
596b09:	8b 30                	mov    (%eax),%esi
596b0b:	ff 56 08             	call   *0x8(%esi)
596b0e:	8b 45 f0             	mov    -0x10(%ebp),%eax
596b11:	8b 40 20             	mov    0x20(%eax),%eax
596b14:	8b 13                	mov    (%ebx),%edx
596b16:	89 82 ac 03 00 00    	mov    %eax,0x3ac(%edx)
596b1c:	8b 45 f0             	mov    -0x10(%ebp),%eax
596b1f:	8b 40 20             	mov    0x20(%eax),%eax
596b22:	8d 04 40             	lea    (%eax,%eax,2),%eax
596b25:	e8 8a 25 e7 ff       	call   0x4090b4
596b2a:	8b 13                	mov    (%ebx),%edx
596b2c:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
596b32:	8b 45 f0             	mov    -0x10(%ebp),%eax
596b35:	8b 70 20             	mov    0x20(%eax),%esi
596b38:	4e                   	dec    %esi
596b39:	85 f6                	test   %esi,%esi
596b3b:	7c 4c                	jl     0x596b89
596b3d:	46                   	inc    %esi
596b3e:	33 c0                	xor    %eax,%eax
596b40:	8b 4d d0             	mov    -0x30(%ebp),%ecx
596b43:	8a 4c 81 02          	mov    0x2(%ecx,%eax,4),%cl
596b47:	51                   	push   %ecx
596b48:	8d 14 40             	lea    (%eax,%eax,2),%edx
596b4b:	8b 0b                	mov    (%ebx),%ecx
596b4d:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
596b53:	8d 7c 11 02          	lea    0x2(%ecx,%edx,1),%edi
596b57:	59                   	pop    %ecx
596b58:	88 0f                	mov    %cl,(%edi)
596b5a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
596b5d:	8a 4c 81 01          	mov    0x1(%ecx,%eax,4),%cl
596b61:	51                   	push   %ecx
596b62:	8b 0b                	mov    (%ebx),%ecx
596b64:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
596b6a:	8d 7c 11 01          	lea    0x1(%ecx,%edx,1),%edi
596b6e:	59                   	pop    %ecx
596b6f:	88 0f                	mov    %cl,(%edi)
596b71:	8b 4d d0             	mov    -0x30(%ebp),%ecx
596b74:	8a 0c 81             	mov    (%ecx,%eax,4),%cl
596b77:	51                   	push   %ecx
596b78:	8b 0b                	mov    (%ebx),%ecx
596b7a:	8b 89 a8 03 00 00    	mov    0x3a8(%ecx),%ecx
596b80:	03 ca                	add    %edx,%ecx
596b82:	5a                   	pop    %edx
596b83:	88 11                	mov    %dl,(%ecx)
596b85:	40                   	inc    %eax
596b86:	4e                   	dec    %esi
596b87:	75 b7                	jne    0x596b40
596b89:	83 7d d8 03          	cmpl   $0x3,-0x28(%ebp)
596b8d:	75 13                	jne    0x596ba2
596b8f:	8d 95 78 ff ff ff    	lea    -0x88(%ebp),%edx
596b95:	b9 0c 00 00 00       	mov    $0xc,%ecx
596b9a:	8b 45 fc             	mov    -0x4(%ebp),%eax
596b9d:	8b 30                	mov    (%eax),%esi
596b9f:	ff 56 08             	call   *0x8(%esi)
596ba2:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
596ba6:	74 06                	je     0x596bae
596ba8:	83 7d d8 03          	cmpl   $0x3,-0x28(%ebp)
596bac:	75 09                	jne    0x596bb7
596bae:	8b 03                	mov    (%ebx),%eax
596bb0:	c6 80 02 01 00 00 00 	movb   $0x0,0x102(%eax)
596bb7:	83 7d d8 02          	cmpl   $0x2,-0x28(%ebp)
596bbb:	74 06                	je     0x596bc3
596bbd:	83 7d d8 01          	cmpl   $0x1,-0x28(%ebp)
596bc1:	75 09                	jne    0x596bcc
596bc3:	8b 03                	mov    (%ebx),%eax
596bc5:	c6 80 02 01 00 00 01 	movb   $0x1,0x102(%eax)
596bcc:	83 7d 8f 00          	cmpl   $0x0,-0x71(%ebp)
596bd0:	76 15                	jbe    0x596be7
596bd2:	8b 45 8f             	mov    -0x71(%ebp),%eax
596bd5:	33 d2                	xor    %edx,%edx
596bd7:	03 45 e0             	add    -0x20(%ebp),%eax
596bda:	13 55 e4             	adc    -0x1c(%ebp),%edx
596bdd:	52                   	push   %edx
596bde:	50                   	push   %eax
596bdf:	8b 45 fc             	mov    -0x4(%ebp),%eax
596be2:	e8 f1 7a e8 ff       	call   0x41e6d8
596be7:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
596beb:	7e 13                	jle    0x596c00
596bed:	8b 45 fc             	mov    -0x4(%ebp),%eax
596bf0:	e8 c3 7a e8 ff       	call   0x41e6b8
596bf5:	2b 45 e0             	sub    -0x20(%ebp),%eax
596bf8:	8b 55 f4             	mov    -0xc(%ebp),%edx
596bfb:	2b d0                	sub    %eax,%edx
596bfd:	89 55 d4             	mov    %edx,-0x2c(%ebp)
596c00:	8b 03                	mov    (%ebx),%eax
596c02:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
596c06:	74 08                	je     0x596c10
596c08:	8b 03                	mov    (%ebx),%eax
596c0a:	83 78 18 00          	cmpl   $0x0,0x18(%eax)
596c0e:	75 04                	jne    0x596c14
596c10:	c6 45 14 01          	movb   $0x1,0x14(%ebp)
596c14:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
596c18:	0f 85 8e 00 00 00    	jne    0x596cac
596c1e:	83 7d dc 01          	cmpl   $0x1,-0x24(%ebp)
596c22:	75 06                	jne    0x596c2a
596c24:	c6 45 93 01          	movb   $0x1,-0x6d(%ebp)
596c28:	eb 32                	jmp    0x596c5c
596c2a:	83 7d dc 04          	cmpl   $0x4,-0x24(%ebp)
596c2e:	75 11                	jne    0x596c41
596c30:	8b 03                	mov    (%ebx),%eax
596c32:	80 b8 a5 03 00 00 00 	cmpb   $0x0,0x3a5(%eax)
596c39:	74 06                	je     0x596c41
596c3b:	c6 45 93 02          	movb   $0x2,-0x6d(%ebp)
596c3f:	eb 1b                	jmp    0x596c5c
596c41:	83 7d dc 08          	cmpl   $0x8,-0x24(%ebp)
596c45:	75 11                	jne    0x596c58
596c47:	8b 03                	mov    (%ebx),%eax
596c49:	80 b8 a5 03 00 00 00 	cmpb   $0x0,0x3a5(%eax)
596c50:	74 06                	je     0x596c58
596c52:	c6 45 93 02          	movb   $0x2,-0x6d(%ebp)
596c56:	eb 04                	jmp    0x596c5c
596c58:	c6 45 93 05          	movb   $0x5,-0x6d(%ebp)
596c5c:	8a 45 93             	mov    -0x6d(%ebp),%al
596c5f:	50                   	push   %eax
596c60:	8b 03                	mov    (%ebx),%eax
596c62:	8b 48 18             	mov    0x18(%eax),%ecx
596c65:	8b 03                	mov    (%ebx),%eax
596c67:	8b 50 14             	mov    0x14(%eax),%edx
596c6a:	8b 45 f8             	mov    -0x8(%ebp),%eax
596c6d:	8b 30                	mov    (%eax),%esi
596c6f:	ff 56 24             	call   *0x24(%esi)
596c72:	8b 45 f8             	mov    -0x8(%ebp),%eax
596c75:	8b 10                	mov    (%eax),%edx
596c77:	ff 52 08             	call   *0x8(%edx)
596c7a:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
596c80:	db 85 74 ff ff ff    	fildl  -0x8c(%ebp)
596c86:	d8 3d 04 77 59 00    	fdivrs 0x597704
596c8c:	8b 45 18             	mov    0x18(%ebp),%eax
596c8f:	dd 58 18             	fstpl  0x18(%eax)
596c92:	9b                   	fwait
596c93:	8b 45 f8             	mov    -0x8(%ebp),%eax
596c96:	8b 10                	mov    (%eax),%edx
596c98:	ff 52 0c             	call   *0xc(%edx)
596c9b:	f7 6d dc             	imull  -0x24(%ebp)
596c9e:	83 c0 1f             	add    $0x1f,%eax
596ca1:	c1 e8 05             	shr    $0x5,%eax
596ca4:	c1 e0 02             	shl    $0x2,%eax
596ca7:	89 45 c0             	mov    %eax,-0x40(%ebp)
596caa:	eb 05                	jmp    0x596cb1
596cac:	33 c0                	xor    %eax,%eax
596cae:	89 45 c0             	mov    %eax,-0x40(%ebp)
596cb1:	8b 45 dc             	mov    -0x24(%ebp),%eax
596cb4:	83 f8 10             	cmp    $0x10,%eax
596cb7:	7f 20                	jg     0x596cd9
596cb9:	0f 84 3b 06 00 00    	je     0x5972fa
596cbf:	48                   	dec    %eax
596cc0:	74 2e                	je     0x596cf0
596cc2:	83 e8 03             	sub    $0x3,%eax
596cc5:	0f 84 6f 01 00 00    	je     0x596e3a
596ccb:	83 e8 04             	sub    $0x4,%eax
596cce:	0f 84 ee 03 00 00    	je     0x5970c2
596cd4:	e9 f5 09 00 00       	jmp    0x5976ce
596cd9:	83 e8 18             	sub    $0x18,%eax
596cdc:	0f 84 a5 07 00 00    	je     0x597487
596ce2:	83 e8 08             	sub    $0x8,%eax
596ce5:	0f 84 48 08 00 00    	je     0x597533
596ceb:	e9 de 09 00 00       	jmp    0x5976ce
596cf0:	8b 03                	mov    (%ebx),%eax
596cf2:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%eax)
596cf9:	8b 03                	mov    (%ebx),%eax
596cfb:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
596d02:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
596d06:	0f 85 c2 09 00 00    	jne    0x5976ce
596d0c:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
596d10:	0f 85 b8 09 00 00    	jne    0x5976ce
596d16:	8b 45 f8             	mov    -0x8(%ebp),%eax
596d19:	8b 10                	mov    (%eax),%edx
596d1b:	ff 52 08             	call   *0x8(%edx)
596d1e:	48                   	dec    %eax
596d1f:	89 45 98             	mov    %eax,-0x68(%ebp)
596d22:	8b 45 98             	mov    -0x68(%ebp),%eax
596d25:	83 f8 00             	cmp    $0x0,%eax
596d28:	7c 6f                	jl     0x596d99
596d2a:	89 45 c4             	mov    %eax,-0x3c(%ebp)
596d2d:	8b 45 18             	mov    0x18(%ebp),%eax
596d30:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
596d35:	74 2d                	je     0x596d64
596d37:	8b 45 98             	mov    -0x68(%ebp),%eax
596d3a:	2b 45 c4             	sub    -0x3c(%ebp),%eax
596d3d:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
596d43:	db 85 74 ff ff ff    	fildl  -0x8c(%ebp)
596d49:	8b 45 18             	mov    0x18(%ebp),%eax
596d4c:	dc 48 18             	fmull  0x18(%eax)
596d4f:	e8 78 bf e6 ff       	call   0x402ccc
596d54:	8b c8                	mov    %eax,%ecx
596d56:	8b 75 18             	mov    0x18(%ebp),%esi
596d59:	8b 55 18             	mov    0x18(%ebp),%edx
596d5c:	8b 52 08             	mov    0x8(%edx),%edx
596d5f:	8b 46 04             	mov    0x4(%esi),%eax
596d62:	ff 16                	call   *(%esi)
596d64:	8b 45 18             	mov    0x18(%ebp),%eax
596d67:	8b 40 28             	mov    0x28(%eax),%eax
596d6a:	80 38 00             	cmpb   $0x0,(%eax)
596d6d:	75 2a                	jne    0x596d99
596d6f:	8b 45 94             	mov    -0x6c(%ebp),%eax
596d72:	2b 45 c4             	sub    -0x3c(%ebp),%eax
596d75:	99                   	cltd
596d76:	33 c2                	xor    %edx,%eax
596d78:	2b c2                	sub    %edx,%eax
596d7a:	8b d0                	mov    %eax,%edx
596d7c:	8b 45 f8             	mov    -0x8(%ebp),%eax
596d7f:	8b 08                	mov    (%eax),%ecx
596d81:	ff 11                	call   *(%ecx)
596d83:	8b d0                	mov    %eax,%edx
596d85:	8b 4d c0             	mov    -0x40(%ebp),%ecx
596d88:	8b 45 fc             	mov    -0x4(%ebp),%eax
596d8b:	8b 30                	mov    (%eax),%esi
596d8d:	ff 56 08             	call   *0x8(%esi)
596d90:	ff 4d c4             	decl   -0x3c(%ebp)
596d93:	83 7d c4 ff          	cmpl   $0xffffffff,-0x3c(%ebp)
596d97:	75 94                	jne    0x596d2d
596d99:	8b 03                	mov    (%ebx),%eax
596d9b:	83 b8 ac 03 00 00 02 	cmpl   $0x2,0x3ac(%eax)
596da2:	0f 85 26 09 00 00    	jne    0x5976ce
596da8:	8b 03                	mov    (%ebx),%eax
596daa:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
596db0:	8a 50 02             	mov    0x2(%eax),%dl
596db3:	c1 e2 10             	shl    $0x10,%edx
596db6:	66 8b 10             	mov    (%eax),%dx
596db9:	52                   	push   %edx
596dba:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
596dc0:	50                   	push   %eax
596dc1:	b1 ff                	mov    $0xff,%cl
596dc3:	b2 ff                	mov    $0xff,%dl
596dc5:	b0 ff                	mov    $0xff,%al
596dc7:	e8 44 25 01 00       	call   0x5a9310
596dcc:	8a 85 72 ff ff ff    	mov    -0x8e(%ebp),%al
596dd2:	c1 e0 10             	shl    $0x10,%eax
596dd5:	66 8b 85 70 ff ff ff 	mov    -0x90(%ebp),%ax
596ddc:	50                   	push   %eax
596ddd:	e8 72 26 01 00       	call   0x5a9454
596de2:	84 c0                	test   %al,%al
596de4:	0f 84 e4 08 00 00    	je     0x5976ce
596dea:	8b 03                	mov    (%ebx),%eax
596dec:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
596df2:	8a 50 05             	mov    0x5(%eax),%dl
596df5:	c1 e2 10             	shl    $0x10,%edx
596df8:	66 8b 50 03          	mov    0x3(%eax),%dx
596dfc:	52                   	push   %edx
596dfd:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
596e03:	50                   	push   %eax
596e04:	33 c9                	xor    %ecx,%ecx
596e06:	33 d2                	xor    %edx,%edx
596e08:	33 c0                	xor    %eax,%eax
596e0a:	e8 01 25 01 00       	call   0x5a9310
596e0f:	8a 85 72 ff ff ff    	mov    -0x8e(%ebp),%al
596e15:	c1 e0 10             	shl    $0x10,%eax
596e18:	66 8b 85 70 ff ff ff 	mov    -0x90(%ebp),%ax
596e1f:	50                   	push   %eax
596e20:	e8 2f 26 01 00       	call   0x5a9454
596e25:	84 c0                	test   %al,%al
596e27:	0f 84 a1 08 00 00    	je     0x5976ce
596e2d:	8b 45 f8             	mov    -0x8(%ebp),%eax
596e30:	e8 af 58 01 00       	call   0x5ac6e4
596e35:	e9 94 08 00 00       	jmp    0x5976ce
596e3a:	8b 03                	mov    (%ebx),%eax
596e3c:	c7 40 08 04 00 00 00 	movl   $0x4,0x8(%eax)
596e43:	8b 03                	mov    (%ebx),%eax
596e45:	c7 40 10 01 00 00 00 	movl   $0x1,0x10(%eax)
596e4c:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
596e50:	0f 85 78 08 00 00    	jne    0x5976ce
596e56:	8b 03                	mov    (%ebx),%eax
596e58:	80 b8 a5 03 00 00 00 	cmpb   $0x0,0x3a5(%eax)
596e5f:	74 40                	je     0x596ea1
596e61:	8b 03                	mov    (%ebx),%eax
596e63:	8b b0 ac 03 00 00    	mov    0x3ac(%eax),%esi
596e69:	4e                   	dec    %esi
596e6a:	85 f6                	test   %esi,%esi
596e6c:	7c 33                	jl     0x596ea1
596e6e:	46                   	inc    %esi
596e6f:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
596e76:	8b 45 c4             	mov    -0x3c(%ebp),%eax
596e79:	8d 04 40             	lea    (%eax,%eax,2),%eax
596e7c:	8b 13                	mov    (%ebx),%edx
596e7e:	8b 92 a8 03 00 00    	mov    0x3a8(%edx),%edx
596e84:	8a 4c 02 02          	mov    0x2(%edx,%eax,1),%cl
596e88:	c1 e1 10             	shl    $0x10,%ecx
596e8b:	66 8b 0c 02          	mov    (%edx,%eax,1),%cx
596e8f:	51                   	push   %ecx
596e90:	8b 55 c4             	mov    -0x3c(%ebp),%edx
596e93:	8b 45 f8             	mov    -0x8(%ebp),%eax
596e96:	8b 08                	mov    (%eax),%ecx
596e98:	ff 51 1c             	call   *0x1c(%ecx)
596e9b:	ff 45 c4             	incl   -0x3c(%ebp)
596e9e:	4e                   	dec    %esi
596e9f:	75 d5                	jne    0x596e76
596ea1:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
596ea5:	0f 85 92 01 00 00    	jne    0x59703d
596eab:	8b 45 c0             	mov    -0x40(%ebp),%eax
596eae:	83 c0 20             	add    $0x20,%eax
596eb1:	e8 f6 b8 e6 ff       	call   0x4027ac
596eb6:	89 45 b4             	mov    %eax,-0x4c(%ebp)
596eb9:	8b 45 f8             	mov    -0x8(%ebp),%eax
596ebc:	8b 10                	mov    (%eax),%edx
596ebe:	ff 52 08             	call   *0x8(%edx)
596ec1:	48                   	dec    %eax
596ec2:	89 45 98             	mov    %eax,-0x68(%ebp)
596ec5:	8b 45 f8             	mov    -0x8(%ebp),%eax
596ec8:	8b 10                	mov    (%eax),%edx
596eca:	ff 52 0c             	call   *0xc(%edx)
596ecd:	48                   	dec    %eax
596ece:	89 45 9c             	mov    %eax,-0x64(%ebp)
596ed1:	8b 45 98             	mov    -0x68(%ebp),%eax
596ed4:	83 f8 00             	cmp    $0x0,%eax
596ed7:	0f 8c 53 01 00 00    	jl     0x597030
596edd:	89 45 c4             	mov    %eax,-0x3c(%ebp)
596ee0:	8b 45 18             	mov    0x18(%ebp),%eax
596ee3:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
596ee8:	74 2d                	je     0x596f17
596eea:	8b 45 98             	mov    -0x68(%ebp),%eax
596eed:	2b 45 c4             	sub    -0x3c(%ebp),%eax
596ef0:	89 85 74 ff ff ff    	mov    %eax,-0x8c(%ebp)
596ef6:	db 85 74 ff ff ff    	fildl  -0x8c(%ebp)
596efc:	8b 45 18             	mov    0x18(%ebp),%eax
596eff:	dc 48 18             	fmull  0x18(%eax)
596f02:	e8 c5 bd e6 ff       	call   0x402ccc
596f07:	8b c8                	mov    %eax,%ecx
596f09:	8b 75 18             	mov    0x18(%ebp),%esi
596f0c:	8b 55 18             	mov    0x18(%ebp),%edx
596f0f:	8b 52 08             	mov    0x8(%edx),%edx
596f12:	8b 46 04             	mov    0x4(%esi),%eax
596f15:	ff 16                	call   *(%esi)
596f17:	8b 45 18             	mov    0x18(%ebp),%eax
596f1a:	8b 40 28             	mov    0x28(%eax),%eax
596f1d:	80 38 00             	cmpb   $0x0,(%eax)
596f20:	0f 85 0a 01 00 00    	jne    0x597030
596f26:	8b 55 b4             	mov    -0x4c(%ebp),%edx
596f29:	8b 4d c0             	mov    -0x40(%ebp),%ecx
596f2c:	8b 45 fc             	mov    -0x4(%ebp),%eax
596f2f:	8b 30                	mov    (%eax),%esi
596f31:	ff 56 08             	call   *0x8(%esi)
596f34:	8b 7d b4             	mov    -0x4c(%ebp),%edi
596f37:	8b 03                	mov    (%ebx),%eax
596f39:	80 b8 a5 03 00 00 00 	cmpb   $0x0,0x3a5(%eax)
596f40:	74 60                	je     0x596fa2
596f42:	8b 45 f8             	mov    -0x8(%ebp),%eax
596f45:	c7 40 50 10 00 00 00 	movl   $0x10,0x50(%eax)
596f4c:	8b 45 94             	mov    -0x6c(%ebp),%eax
596f4f:	2b 45 c4             	sub    -0x3c(%ebp),%eax
596f52:	99                   	cltd
596f53:	33 c2                	xor    %edx,%eax
596f55:	2b c2                	sub    %edx,%eax
596f57:	8b d0                	mov    %eax,%edx