597b17:	8b 45 f4             	mov    -0xc(%ebp),%eax
597b1a:	2b 45 ec             	sub    -0x14(%ebp),%eax
597b1d:	40                   	inc    %eax
597b1e:	5e                   	pop    %esi
597b1f:	5b                   	pop    %ebx
597b20:	8b e5                	mov    %ebp,%esp
597b22:	5d                   	pop    %ebp
597b23:	c3                   	ret
597b24:	55                   	push   %ebp
597b25:	8b ec                	mov    %esp,%ebp
597b27:	83 c4 f8             	add    $0xfffffff8,%esp
597b2a:	53                   	push   %ebx
597b2b:	56                   	push   %esi
597b2c:	48                   	dec    %eax
597b2d:	85 c0                	test   %eax,%eax
597b2f:	7c 64                	jl     0x597b95
597b31:	40                   	inc    %eax
597b32:	89 45 f8             	mov    %eax,-0x8(%ebp)
597b35:	33 db                	xor    %ebx,%ebx
597b37:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
597b3a:	8b 55 08             	mov    0x8(%ebp),%edx
597b3d:	8b 52 fc             	mov    -0x4(%edx),%edx
597b40:	8b 12                	mov    (%edx),%edx
597b42:	8b 92 a8 03 00 00    	mov    0x3a8(%edx),%edx
597b48:	8a 14 02             	mov    (%edx,%eax,1),%dl
597b4b:	88 55 fc             	mov    %dl,-0x4(%ebp)
597b4e:	8b 55 08             	mov    0x8(%ebp),%edx
597b51:	8b 52 fc             	mov    -0x4(%edx),%edx
597b54:	8b 12                	mov    (%edx),%edx
597b56:	8b 92 a8 03 00 00    	mov    0x3a8(%edx),%edx
597b5c:	8a 54 02 01          	mov    0x1(%edx,%eax,1),%dl
597b60:	88 55 fd             	mov    %dl,-0x3(%ebp)
597b63:	8b 55 08             	mov    0x8(%ebp),%edx
597b66:	8b 52 fc             	mov    -0x4(%edx),%edx
597b69:	8b 12                	mov    (%edx),%edx
597b6b:	8b 92 a8 03 00 00    	mov    0x3a8(%edx),%edx
597b71:	8a 44 02 02          	mov    0x2(%edx,%eax,1),%al
597b75:	88 45 fe             	mov    %al,-0x2(%ebp)
597b78:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
597b7c:	8d 55 fc             	lea    -0x4(%ebp),%edx
597b7f:	8b 45 08             	mov    0x8(%ebp),%eax
597b82:	8b 40 f8             	mov    -0x8(%eax),%eax
597b85:	b9 04 00 00 00       	mov    $0x4,%ecx
597b8a:	8b 30                	mov    (%eax),%esi
597b8c:	ff 56 0c             	call   *0xc(%esi)
597b8f:	43                   	inc    %ebx
597b90:	ff 4d f8             	decl   -0x8(%ebp)
597b93:	75 a2                	jne    0x597b37
597b95:	5e                   	pop    %esi
597b96:	5b                   	pop    %ebx
597b97:	59                   	pop    %ecx
597b98:	59                   	pop    %ecx
597b99:	5d                   	pop    %ebp
597b9a:	c3                   	ret
597b9b:	90                   	nop
597b9c:	55                   	push   %ebp
597b9d:	8b ec                	mov    %esp,%ebp
597b9f:	81 c4 18 ff ff ff    	add    $0xffffff18,%esp
597ba5:	53                   	push   %ebx
597ba6:	56                   	push   %esi
597ba7:	57                   	push   %edi
597ba8:	89 4d fc             	mov    %ecx,-0x4(%ebp)
597bab:	89 55 f4             	mov    %edx,-0xc(%ebp)
597bae:	89 45 f8             	mov    %eax,-0x8(%ebp)
597bb1:	8b 45 08             	mov    0x8(%ebp),%eax
597bb4:	8b 40 28             	mov    0x28(%eax),%eax
597bb7:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
597bbd:	33 c0                	xor    %eax,%eax
597bbf:	89 85 20 ff ff ff    	mov    %eax,-0xe0(%ebp)
597bc5:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
597bcb:	33 c0                	xor    %eax,%eax
597bcd:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
597bd3:	8b 45 f8             	mov    -0x8(%ebp),%eax
597bd6:	e8 dd 6a e8 ff       	call   0x41e6b8
597bdb:	89 45 d8             	mov    %eax,-0x28(%ebp)
597bde:	89 55 dc             	mov    %edx,-0x24(%ebp)
597be1:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
597be8:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
597bef:	8b 45 fc             	mov    -0x4(%ebp),%eax
597bf2:	8b 00                	mov    (%eax),%eax
597bf4:	8b 40 08             	mov    0x8(%eax),%eax
597bf7:	83 f8 01             	cmp    $0x1,%eax
597bfa:	74 08                	je     0x597c04
597bfc:	8b 55 fc             	mov    -0x4(%ebp),%edx
597bff:	83 f8 04             	cmp    $0x4,%eax
597c02:	75 08                	jne    0x597c0c
597c04:	8b 55 fc             	mov    -0x4(%ebp),%edx
597c07:	89 45 f0             	mov    %eax,-0x10(%ebp)
597c0a:	eb 46                	jmp    0x597c52
597c0c:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c0f:	8b 00                	mov    (%eax),%eax
597c11:	83 78 10 01          	cmpl   $0x1,0x10(%eax)
597c15:	75 09                	jne    0x597c20
597c17:	c7 45 f0 08 00 00 00 	movl   $0x8,-0x10(%ebp)
597c1e:	eb 32                	jmp    0x597c52
597c20:	8b 45 f4             	mov    -0xc(%ebp),%eax
597c23:	e8 e0 fc 05 00       	call   0x5f7908
597c28:	84 c0                	test   %al,%al
597c2a:	74 1f                	je     0x597c4b
597c2c:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c2f:	8b 00                	mov    (%eax),%eax
597c31:	83 78 10 04          	cmpl   $0x4,0x10(%eax)
597c35:	75 14                	jne    0x597c4b
597c37:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c3a:	8b 00                	mov    (%eax),%eax
597c3c:	83 78 08 08          	cmpl   $0x8,0x8(%eax)
597c40:	75 09                	jne    0x597c4b
597c42:	c7 45 f0 20 00 00 00 	movl   $0x20,-0x10(%ebp)
597c49:	eb 07                	jmp    0x597c52
597c4b:	c7 45 f0 18 00 00 00 	movl   $0x18,-0x10(%ebp)
597c52:	8d 45 9e             	lea    -0x62(%ebp),%eax
597c55:	33 c9                	xor    %ecx,%ecx
597c57:	ba 0e 00 00 00       	mov    $0xe,%edx
597c5c:	e8 df b5 e6 ff       	call   0x403240
597c61:	66 c7 45 9e 42 4d    	movw   $0x4d42,-0x62(%ebp)
597c67:	6a 0e                	push   $0xe
597c69:	8d 4d 9e             	lea    -0x62(%ebp),%ecx
597c6c:	8b 55 08             	mov    0x8(%ebp),%edx
597c6f:	8b 52 28             	mov    0x28(%edx),%edx
597c72:	8b 45 f8             	mov    -0x8(%ebp),%eax
597c75:	e8 82 e2 05 00       	call   0x5f5efc
597c7a:	8b 45 fc             	mov    -0x4(%ebp),%eax
597c7d:	8b 00                	mov    (%eax),%eax
597c7f:	80 b8 01 01 00 00 02 	cmpb   $0x2,0x101(%eax)
597c86:	75 51                	jne    0x597cd9
597c88:	c7 85 52 ff ff ff 0c 	movl   $0xc,-0xae(%ebp)
597c8f:	00 00 00
597c92:	8b 45 f4             	mov    -0xc(%ebp),%eax
597c95:	8b 10                	mov    (%eax),%edx
597c97:	ff 52 0c             	call   *0xc(%edx)
597c9a:	66 89 85 56 ff ff ff 	mov    %ax,-0xaa(%ebp)
597ca1:	8b 45 f4             	mov    -0xc(%ebp),%eax
597ca4:	8b 10                	mov    (%eax),%edx
597ca6:	ff 52 08             	call   *0x8(%edx)
597ca9:	66 89 85 58 ff ff ff 	mov    %ax,-0xa8(%ebp)
597cb0:	66 c7 85 5a ff ff ff 	movw   $0x1,-0xa6(%ebp)
597cb7:	01 00
597cb9:	8b 85 52 ff ff ff    	mov    -0xae(%ebp),%eax
597cbf:	50                   	push   %eax
597cc0:	8d 8d 52 ff ff ff    	lea    -0xae(%ebp),%ecx
597cc6:	8b 55 08             	mov    0x8(%ebp),%edx
597cc9:	8b 52 28             	mov    0x28(%edx),%edx
597ccc:	8b 45 f8             	mov    -0x8(%ebp),%eax
597ccf:	e8 28 e2 05 00       	call   0x5f5efc
597cd4:	e9 26 01 00 00       	jmp    0x597dff
597cd9:	8d 85 5e ff ff ff    	lea    -0xa2(%ebp),%eax
597cdf:	33 c9                	xor    %ecx,%ecx
597ce1:	ba 40 00 00 00       	mov    $0x40,%edx
597ce6:	e8 55 b5 e6 ff       	call   0x403240
597ceb:	8b 45 fc             	mov    -0x4(%ebp),%eax
597cee:	8b 00                	mov    (%eax),%eax
597cf0:	8a 80 01 01 00 00    	mov    0x101(%eax),%al
597cf6:	2c 01                	sub    $0x1,%al
597cf8:	72 08                	jb     0x597d02
597cfa:	74 12                	je     0x597d0e
597cfc:	2c 02                	sub    $0x2,%al
597cfe:	74 1a                	je     0x597d1a
597d00:	eb 22                	jmp    0x597d24
597d02:	c7 85 5e ff ff ff 28 	movl   $0x28,-0xa2(%ebp)
597d09:	00 00 00
597d0c:	eb 16                	jmp    0x597d24
597d0e:	c7 85 5e ff ff ff 28 	movl   $0x28,-0xa2(%ebp)
597d15:	00 00 00
597d18:	eb 0a                	jmp    0x597d24
597d1a:	c7 85 5e ff ff ff 40 	movl   $0x40,-0xa2(%ebp)
597d21:	00 00 00
597d24:	8b 45 f4             	mov    -0xc(%ebp),%eax
597d27:	8b 10                	mov    (%eax),%edx
597d29:	ff 52 0c             	call   *0xc(%edx)
597d2c:	89 85 62 ff ff ff    	mov    %eax,-0x9e(%ebp)
597d32:	8b 45 f4             	mov    -0xc(%ebp),%eax
597d35:	8b 10                	mov    (%eax),%edx
597d37:	ff 52 08             	call   *0x8(%edx)
597d3a:	89 85 66 ff ff ff    	mov    %eax,-0x9a(%ebp)
597d40:	66 c7 85 6a ff ff ff 	movw   $0x1,-0x96(%ebp)
597d47:	01 00
597d49:	33 c0                	xor    %eax,%eax
597d4b:	89 85 6e ff ff ff    	mov    %eax,-0x92(%ebp)
597d51:	8b 45 fc             	mov    -0x4(%ebp),%eax
597d54:	8b 00                	mov    (%eax),%eax
597d56:	80 b8 02 01 00 00 01 	cmpb   $0x1,0x102(%eax)
597d5d:	75 20                	jne    0x597d7f
597d5f:	83 7d f0 04          	cmpl   $0x4,-0x10(%ebp)
597d63:	75 0a                	jne    0x597d6f
597d65:	c7 85 6e ff ff ff 02 	movl   $0x2,-0x92(%ebp)
597d6c:	00 00 00
597d6f:	83 7d f0 08          	cmpl   $0x8,-0x10(%ebp)
597d73:	75 0a                	jne    0x597d7f
597d75:	c7 85 6e ff ff ff 01 	movl   $0x1,-0x92(%ebp)
597d7c:	00 00 00
597d7f:	8b 45 fc             	mov    -0x4(%ebp),%eax
597d82:	8b 00                	mov    (%eax),%eax
597d84:	db 40 1c             	fildl  0x1c(%eax)
597d87:	db 2d 6c 87 59 00    	fldt   0x59876c
597d8d:	de f9                	fdivrp %st,%st(1)
597d8f:	d8 0d 78 87 59 00    	fmuls  0x598778
597d95:	e8 26 af e6 ff       	call   0x402cc0
597d9a:	89 85 76 ff ff ff    	mov    %eax,-0x8a(%ebp)
597da0:	8b 45 fc             	mov    -0x4(%ebp),%eax
597da3:	8b 00                	mov    (%eax),%eax
597da5:	db 40 20             	fildl  0x20(%eax)
597da8:	db 2d 6c 87 59 00    	fldt   0x59876c
597dae:	de f9                	fdivrp %st,%st(1)
597db0:	d8 0d 78 87 59 00    	fmuls  0x598778
597db6:	e8 05 af e6 ff       	call   0x402cc0
597dbb:	89 85 7a ff ff ff    	mov    %eax,-0x86(%ebp)
597dc1:	83 7d f0 08          	cmpl   $0x8,-0x10(%ebp)
597dc5:	7f 10                	jg     0x597dd7
597dc7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
597dca:	b8 01 00 00 00       	mov    $0x1,%eax
597dcf:	d3 e0                	shl    %cl,%eax
597dd1:	89 85 7e ff ff ff    	mov    %eax,-0x82(%ebp)
597dd7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
597dda:	b8 01 00 00 00       	mov    $0x1,%eax
597ddf:	d3 e0                	shl    %cl,%eax
597de1:	89 45 82             	mov    %eax,-0x7e(%ebp)
597de4:	8b 85 5e ff ff ff    	mov    -0xa2(%ebp),%eax
597dea:	50                   	push   %eax
597deb:	8d 8d 5e ff ff ff    	lea    -0xa2(%ebp),%ecx
597df1:	8b 55 08             	mov    0x8(%ebp),%edx
597df4:	8b 52 28             	mov    0x28(%edx),%edx
597df7:	8b 45 f8             	mov    -0x8(%ebp),%eax
597dfa:	e8 fd e0 05 00       	call   0x5f5efc
597dff:	8b 45 f4             	mov    -0xc(%ebp),%eax
597e02:	8b 10                	mov    (%eax),%edx
597e04:	ff 52 08             	call   *0x8(%edx)
597e07:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
597e0d:	db 85 1c ff ff ff    	fildl  -0xe4(%ebp)
597e13:	d8 3d 78 87 59 00    	fdivrs 0x598778
597e19:	8b 45 08             	mov    0x8(%ebp),%eax
597e1c:	dd 58 18             	fstpl  0x18(%eax)
597e1f:	9b                   	fwait
597e20:	8b 45 f4             	mov    -0xc(%ebp),%eax
597e23:	8b 10                	mov    (%eax),%edx
597e25:	ff 52 0c             	call   *0xc(%edx)
597e28:	f7 6d f0             	imull  -0x10(%ebp)
597e2b:	83 c0 1f             	add    $0x1f,%eax
597e2e:	c1 e8 05             	shr    $0x5,%eax
597e31:	c1 e0 02             	shl    $0x2,%eax
597e34:	89 45 b8             	mov    %eax,-0x48(%ebp)
597e37:	83 7d f0 04          	cmpl   $0x4,-0x10(%ebp)
597e3b:	74 0a                	je     0x597e47
597e3d:	83 7d f0 08          	cmpl   $0x8,-0x10(%ebp)
597e41:	0f 85 6f 04 00 00    	jne    0x5982b6
597e47:	8b 45 f4             	mov    -0xc(%ebp),%eax
597e4a:	8b 10                	mov    (%eax),%edx
597e4c:	ff 52 10             	call   *0x10(%edx)
597e4f:	3c 01                	cmp    $0x1,%al
597e51:	75 26                	jne    0x597e79
597e53:	b2 01                	mov    $0x1,%dl
597e55:	a1 18 ff 5e 00       	mov    0x5eff18,%eax
597e5a:	e8 45 f7 05 00       	call   0x5f75a4
597e5f:	89 45 b4             	mov    %eax,-0x4c(%ebp)
597e62:	8b 55 f4             	mov    -0xc(%ebp),%edx
597e65:	8b 45 b4             	mov    -0x4c(%ebp),%eax
597e68:	8b 08                	mov    (%eax),%ecx
597e6a:	ff 51 28             	call   *0x28(%ecx)
597e6d:	b2 05                	mov    $0x5,%dl
597e6f:	8b 45 b4             	mov    -0x4c(%ebp),%eax
597e72:	e8 41 03 06 00       	call   0x5f81b8
597e77:	eb 06                	jmp    0x597e7f
597e79:	8b 45 f4             	mov    -0xc(%ebp),%eax
597e7c:	89 45 b4             	mov    %eax,-0x4c(%ebp)
597e7f:	8b 45 fc             	mov    -0x4(%ebp),%eax
597e82:	8b 00                	mov    (%eax),%eax
597e84:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
597e8a:	85 c0                	test   %eax,%eax
597e8c:	74 22                	je     0x597eb0
597e8e:	8b 55 fc             	mov    -0x4(%ebp),%edx
597e91:	e8 36 a9 e6 ff       	call   0x4027cc
597e96:	8b 45 fc             	mov    -0x4(%ebp),%eax
597e99:	8b 00                	mov    (%eax),%eax
597e9b:	33 d2                	xor    %edx,%edx
597e9d:	89 90 a8 03 00 00    	mov    %edx,0x3a8(%eax)
597ea3:	8b 45 fc             	mov    -0x4(%ebp),%eax
597ea6:	8b 00                	mov    (%eax),%eax
597ea8:	33 d2                	xor    %edx,%edx
597eaa:	89 90 ac 03 00 00    	mov    %edx,0x3ac(%eax)
597eb0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
597eb3:	bb 01 00 00 00       	mov    $0x1,%ebx
597eb8:	d3 e3                	shl    %cl,%ebx
597eba:	8d 34 5b             	lea    (%ebx,%ebx,2),%esi
597ebd:	8b c6                	mov    %esi,%eax
597ebf:	e8 e8 a8 e6 ff       	call   0x4027ac
597ec4:	8b 55 fc             	mov    -0x4(%ebp),%edx
597ec7:	8b 12                	mov    (%edx),%edx
597ec9:	89 82 a8 03 00 00    	mov    %eax,0x3a8(%edx)
597ecf:	8b 45 fc             	mov    -0x4(%ebp),%eax
597ed2:	8b 00                	mov    (%eax),%eax
597ed4:	89 98 ac 03 00 00    	mov    %ebx,0x3ac(%eax)
597eda:	8b 45 fc             	mov    -0x4(%ebp),%eax
597edd:	8b 00                	mov    (%eax),%eax
597edf:	8b 80 a8 03 00 00    	mov    0x3a8(%eax),%eax
597ee5:	50                   	push   %eax
597ee6:	68 ff ff ff 07       	push   $0x7ffffff
597eeb:	53                   	push   %ebx
597eec:	6a ff                	push   $0xffffffff
597eee:	6a 00                	push   $0x0
597ef0:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
597ef3:	b2 01                	mov    $0x1,%dl
597ef5:	a1 08 ee 53 00       	mov    0x53ee08,%eax
597efa:	e8 65 7a fa ff       	call   0x53f964
597eff:	89 45 ec             	mov    %eax,-0x14(%ebp)
597f02:	8b 45 fc             	mov    -0x4(%ebp),%eax
597f05:	8b 00                	mov    (%eax),%eax
597f07:	80 b8 01 01 00 00 02 	cmpb   $0x2,0x101(%eax)
597f0e:	75 1c                	jne    0x597f2c
597f10:	56                   	push   %esi
597f11:	8b 45 fc             	mov    -0x4(%ebp),%eax
597f14:	8b 00                	mov    (%eax),%eax
597f16:	8b 88 a8 03 00 00    	mov    0x3a8(%eax),%ecx
597f1c:	8b 55 08             	mov    0x8(%ebp),%edx
597f1f:	8b 52 28             	mov    0x28(%edx),%edx
597f22:	8b 45 f8             	mov    -0x8(%ebp),%eax
597f25:	e8 d2 df 05 00       	call   0x5f5efc
597f2a:	eb 09                	jmp    0x597f35
597f2c:	55                   	push   %ebp
597f2d:	8b c3                	mov    %ebx,%eax
597f2f:	e8 f0 fb ff ff       	call   0x597b24
597f34:	59                   	pop    %ecx
597f35:	8b 45 f8             	mov    -0x8(%ebp),%eax
597f38:	e8 7b 67 e8 ff       	call   0x41e6b8
597f3d:	89 45 d0             	mov    %eax,-0x30(%ebp)
597f40:	89 55 d4             	mov    %edx,-0x2c(%ebp)
597f43:	8b 45 b4             	mov    -0x4c(%ebp),%eax
597f46:	8b 10                	mov    (%eax),%edx
597f48:	ff 52 0c             	call   *0xc(%edx)
597f4b:	03 c0                	add    %eax,%eax
597f4d:	8d 04 80             	lea    (%eax,%eax,4),%eax
597f50:	e8 57 a8 e6 ff       	call   0x4027ac
597f55:	89 45 c4             	mov    %eax,-0x3c(%ebp)
597f58:	8b 45 b4             	mov    -0x4c(%ebp),%eax
597f5b:	8b 10                	mov    (%eax),%edx
597f5d:	ff 52 0c             	call   *0xc(%edx)
597f60:	8b 55 b8             	mov    -0x48(%ebp),%edx
597f63:	e8 ac 14 01 00       	call   0x5a9414
597f68:	e8 3f a8 e6 ff       	call   0x4027ac
597f6d:	89 45 c0             	mov    %eax,-0x40(%ebp)
597f70:	8b 45 b4             	mov    -0x4c(%ebp),%eax
597f73:	8b 10                	mov    (%eax),%edx
597f75:	ff 52 08             	call   *0x8(%edx)
597f78:	48                   	dec    %eax
597f79:	89 45 b0             	mov    %eax,-0x50(%ebp)
597f7c:	8b 45 b4             	mov    -0x4c(%ebp),%eax
597f7f:	8b 10                	mov    (%eax),%edx
597f81:	ff 52 0c             	call   *0xc(%edx)
597f84:	48                   	dec    %eax
597f85:	89 45 ac             	mov    %eax,-0x54(%ebp)
597f88:	8b 45 b0             	mov    -0x50(%ebp),%eax
597f8b:	83 f8 00             	cmp    $0x0,%eax