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
597f8e:	0f 8c d3 02 00 00    	jl     0x598267
597f94:	89 45 e0             	mov    %eax,-0x20(%ebp)
597f97:	8b 45 08             	mov    0x8(%ebp),%eax
597f9a:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
597f9f:	74 2d                	je     0x597fce
597fa1:	8b 45 b0             	mov    -0x50(%ebp),%eax
597fa4:	2b 45 e0             	sub    -0x20(%ebp),%eax
597fa7:	89 85 1c ff ff ff    	mov    %eax,-0xe4(%ebp)
597fad:	db 85 1c ff ff ff    	fildl  -0xe4(%ebp)
597fb3:	8b 45 08             	mov    0x8(%ebp),%eax
597fb6:	dc 48 18             	fmull  0x18(%eax)
597fb9:	e8 0e ad e6 ff       	call   0x402ccc
597fbe:	8b c8                	mov    %eax,%ecx
597fc0:	8b 5d 08             	mov    0x8(%ebp),%ebx
597fc3:	8b 55 08             	mov    0x8(%ebp),%edx
597fc6:	8b 52 08             	mov    0x8(%edx),%edx
597fc9:	8b 43 04             	mov    0x4(%ebx),%eax
597fcc:	ff 13                	call   *(%ebx)
597fce:	8b 45 08             	mov    0x8(%ebp),%eax
597fd1:	8b 40 28             	mov    0x28(%eax),%eax
597fd4:	80 38 00             	cmpb   $0x0,(%eax)
597fd7:	0f 85 8a 02 00 00    	jne    0x598267
597fdd:	8b 45 fc             	mov    -0x4(%ebp),%eax
597fe0:	8b 00                	mov    (%eax),%eax
597fe2:	80 b8 02 01 00 00 01 	cmpb   $0x1,0x102(%eax)
597fe9:	0f 85 ca 00 00 00    	jne    0x5980b9
597fef:	8b 45 fc             	mov    -0x4(%ebp),%eax
597ff2:	8b 00                	mov    (%eax),%eax
597ff4:	80 b8 01 01 00 00 02 	cmpb   $0x2,0x101(%eax)
597ffb:	0f 84 b8 00 00 00    	je     0x5980b9
598001:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598004:	8b 10                	mov    (%eax),%edx
598006:	ff 52 10             	call   *0x10(%edx)
598009:	3c 02                	cmp    $0x2,%al
59800b:	75 20                	jne    0x59802d
59800d:	8b 55 e0             	mov    -0x20(%ebp),%edx
598010:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598013:	8b 08                	mov    (%eax),%ecx
598015:	ff 11                	call   *(%ecx)
598017:	50                   	push   %eax
598018:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59801b:	8b 10                	mov    (%eax),%edx
59801d:	ff 52 0c             	call   *0xc(%edx)
598020:	8b c8                	mov    %eax,%ecx
598022:	8b 45 c0             	mov    -0x40(%ebp),%eax
598025:	5a                   	pop    %edx
598026:	e8 95 fe e6 ff       	call   0x407ec0
59802b:	eb 3f                	jmp    0x59806c
59802d:	8b 55 e0             	mov    -0x20(%ebp),%edx
598030:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598033:	8b 08                	mov    (%eax),%ecx
598035:	ff 11                	call   *(%ecx)
598037:	8b f0                	mov    %eax,%esi
598039:	8b 7d ac             	mov    -0x54(%ebp),%edi
59803c:	85 ff                	test   %edi,%edi
59803e:	7c 2c                	jl     0x59806c
598040:	47                   	inc    %edi
598041:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
598048:	8a 46 02             	mov    0x2(%esi),%al
59804b:	c1 e0 10             	shl    $0x10,%eax
59804e:	66 8b 06             	mov    (%esi),%ax
598051:	50                   	push   %eax
598052:	8b 45 ec             	mov    -0x14(%ebp),%eax
598055:	e8 46 7b fa ff       	call   0x53fba0
59805a:	8b 55 c0             	mov    -0x40(%ebp),%edx
59805d:	8b 4d e8             	mov    -0x18(%ebp),%ecx
598060:	88 04 0a             	mov    %al,(%edx,%ecx,1)
598063:	83 c6 03             	add    $0x3,%esi
598066:	ff 45 e8             	incl   -0x18(%ebp)
598069:	4f                   	dec    %edi
59806a:	75 dc                	jne    0x598048
59806c:	83 7d f0 04          	cmpl   $0x4,-0x10(%ebp)
598070:	75 19                	jne    0x59808b
598072:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598075:	8b 10                	mov    (%eax),%edx
598077:	ff 52 0c             	call   *0xc(%edx)
59807a:	8b d0                	mov    %eax,%edx
59807c:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
59807f:	8b 45 c0             	mov    -0x40(%ebp),%eax
598082:	e8 f1 f7 ff ff       	call   0x597878
598087:	8b d8                	mov    %eax,%ebx
598089:	eb 17                	jmp    0x5980a2
59808b:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59808e:	8b 10                	mov    (%eax),%edx
598090:	ff 52 0c             	call   *0xc(%edx)
598093:	8b d0                	mov    %eax,%edx
598095:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
598098:	8b 45 c0             	mov    -0x40(%ebp),%eax
59809b:	e8 a4 f9 ff ff       	call   0x597a44
5980a0:	8b d8                	mov    %eax,%ebx
5980a2:	53                   	push   %ebx
5980a3:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5980a6:	8b 55 08             	mov    0x8(%ebp),%edx
5980a9:	8b 52 28             	mov    0x28(%edx),%edx
5980ac:	8b 45 f8             	mov    -0x8(%ebp),%eax
5980af:	e8 48 de 05 00       	call   0x5f5efc
5980b4:	e9 a1 01 00 00       	jmp    0x59825a
5980b9:	83 7d f0 08          	cmpl   $0x8,-0x10(%ebp)
5980bd:	0f 85 85 00 00 00    	jne    0x598148
5980c3:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5980c6:	8b 10                	mov    (%eax),%edx
5980c8:	ff 52 10             	call   *0x10(%edx)
5980cb:	3c 02                	cmp    $0x2,%al
5980cd:	75 20                	jne    0x5980ef
5980cf:	8b 55 e0             	mov    -0x20(%ebp),%edx
5980d2:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5980d5:	8b 08                	mov    (%eax),%ecx
5980d7:	ff 11                	call   *(%ecx)
5980d9:	50                   	push   %eax
5980da:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5980dd:	8b 10                	mov    (%eax),%edx
5980df:	ff 52 0c             	call   *0xc(%edx)
5980e2:	8b c8                	mov    %eax,%ecx
5980e4:	8b 45 c0             	mov    -0x40(%ebp),%eax
5980e7:	5a                   	pop    %edx
5980e8:	e8 d3 fd e6 ff       	call   0x407ec0
5980ed:	eb 3f                	jmp    0x59812e
5980ef:	8b 55 e0             	mov    -0x20(%ebp),%edx
5980f2:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5980f5:	8b 08                	mov    (%eax),%ecx
5980f7:	ff 11                	call   *(%ecx)
5980f9:	8b f0                	mov    %eax,%esi
5980fb:	8b 7d ac             	mov    -0x54(%ebp),%edi
5980fe:	85 ff                	test   %edi,%edi
598100:	7c 2c                	jl     0x59812e
598102:	47                   	inc    %edi
598103:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
59810a:	8a 46 02             	mov    0x2(%esi),%al
59810d:	c1 e0 10             	shl    $0x10,%eax
598110:	66 8b 06             	mov    (%esi),%ax
598113:	50                   	push   %eax
598114:	8b 45 ec             	mov    -0x14(%ebp),%eax
598117:	e8 84 7a fa ff       	call   0x53fba0
59811c:	8b 55 c0             	mov    -0x40(%ebp),%edx
59811f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
598122:	88 04 0a             	mov    %al,(%edx,%ecx,1)
598125:	83 c6 03             	add    $0x3,%esi
598128:	ff 45 e8             	incl   -0x18(%ebp)
59812b:	4f                   	dec    %edi
59812c:	75 dc                	jne    0x59810a
59812e:	8b 45 b8             	mov    -0x48(%ebp),%eax
598131:	50                   	push   %eax
598132:	8b 4d c0             	mov    -0x40(%ebp),%ecx
598135:	8b 55 08             	mov    0x8(%ebp),%edx
598138:	8b 52 28             	mov    0x28(%edx),%edx
59813b:	8b 45 f8             	mov    -0x8(%ebp),%eax
59813e:	e8 b9 dd 05 00       	call   0x5f5efc
598143:	e9 12 01 00 00       	jmp    0x59825a
598148:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59814b:	8b 10                	mov    (%eax),%edx
59814d:	ff 52 10             	call   *0x10(%edx)
598150:	3c 02                	cmp    $0x2,%al
598152:	75 63                	jne    0x5981b7
598154:	8b 55 e0             	mov    -0x20(%ebp),%edx
598157:	8b 45 b4             	mov    -0x4c(%ebp),%eax
59815a:	8b 08                	mov    (%eax),%ecx
59815c:	ff 11                	call   *(%ecx)
59815e:	8b d8                	mov    %eax,%ebx
598160:	33 c0                	xor    %eax,%eax
598162:	89 45 e8             	mov    %eax,-0x18(%ebp)
598165:	eb 1e                	jmp    0x598185
598167:	8b 45 c0             	mov    -0x40(%ebp),%eax
59816a:	8b 55 e8             	mov    -0x18(%ebp),%edx
59816d:	8a 0b                	mov    (%ebx),%cl
59816f:	c1 e1 04             	shl    $0x4,%ecx
598172:	88 0c 10             	mov    %cl,(%eax,%edx,1)
598175:	43                   	inc    %ebx
598176:	8b 45 c0             	mov    -0x40(%ebp),%eax
598179:	8b 55 e8             	mov    -0x18(%ebp),%edx
59817c:	8a 0b                	mov    (%ebx),%cl
59817e:	08 0c 10             	or     %cl,(%eax,%edx,1)
598181:	43                   	inc    %ebx
598182:	ff 45 e8             	incl   -0x18(%ebp)
598185:	8b 45 b4             	mov    -0x4c(%ebp),%eax
598188:	8b 10                	mov    (%eax),%edx