594aca:	e8 51 8c ff ff       	call   0x58d720
594acf:	83 c4 08             	add    $0x8,%esp
594ad2:	85 c0                	test   %eax,%eax
594ad4:	75 29                	jne    0x594aff
594ad6:	ff 76 3c             	push   0x3c(%esi)
594ad9:	83 4e 28 20          	orl    $0x20,0x28(%esi)
594add:	56                   	push   %esi
594ade:	e8 2d fa ff ff       	call   0x594510
594ae3:	83 c4 08             	add    $0x8,%esp
594ae6:	85 c0                	test   %eax,%eax
594ae8:	75 15                	jne    0x594aff
594aea:	8b 46 28             	mov    0x28(%esi),%eax
594aed:	a8 02                	test   $0x2,%al
594aef:	74 06                	je     0x594af7
594af1:	f6 46 2c 04          	testb  $0x4,0x2c(%esi)
594af5:	74 08                	je     0x594aff
594af7:	0d 00 20 00 00       	or     $0x2000,%eax
594afc:	89 46 28             	mov    %eax,0x28(%esi)
594aff:	6a 00                	push   $0x0
594b01:	6a 00                	push   $0x0
594b03:	6a 55                	push   $0x55
594b05:	56                   	push   %esi
594b06:	e8 65 92 ff ff       	call   0x58dd70
594b0b:	89 46 48             	mov    %eax,0x48(%esi)
594b0e:	8d 44 24 20          	lea    0x20(%esp),%eax
594b12:	6a 00                	push   $0x0
594b14:	50                   	push   %eax
594b15:	68 9a 02 00 00       	push   $0x29a
594b1a:	56                   	push   %esi
594b1b:	e8 50 92 ff ff       	call   0x58dd70
594b20:	83 c4 20             	add    $0x20,%esp
594b23:	89 46 4c             	mov    %eax,0x4c(%esi)
594b26:	85 c0                	test   %eax,%eax
594b28:	75 0e                	jne    0x594b38
594b2a:	83 7c 24 10 ff       	cmpl   $0xffffffff,0x10(%esp)
594b2f:	74 07                	je     0x594b38
594b31:	81 4e 28 80 00 00 00 	orl    $0x80,0x28(%esi)
594b38:	56                   	push   %esi
594b39:	e8 f2 fb ff ff       	call   0x594730
594b3e:	56                   	push   %esi
594b3f:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
594b46:	00
594b47:	e8 04 92 ff ff       	call   0x58dd50
594b4c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
594b50:	83 c4 08             	add    $0x8,%esp
594b53:	3b c8                	cmp    %eax,%ecx
594b55:	0f 8d 95 00 00 00    	jge    0x594bf0
594b5b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
594b60:	51                   	push   %ecx
594b61:	56                   	push   %esi
594b62:	e8 a9 91 ff ff       	call   0x58dd10
594b67:	8b f8                	mov    %eax,%edi
594b69:	57                   	push   %edi
594b6a:	e8 31 c9 ef ff       	call   0x4914a0
594b6f:	50                   	push   %eax
594b70:	e8 6b 2e f1 ff       	call   0x4a79e0
594b75:	83 c4 10             	add    $0x10,%esp
594b78:	3d 59 03 00 00       	cmp    $0x359,%eax
594b7d:	75 07                	jne    0x594b86
594b7f:	81 4e 28 00 10 00 00 	orl    $0x1000,0x28(%esi)
594b86:	57                   	push   %edi
594b87:	e8 a4 1b 00 00       	call   0x596730
594b8c:	83 c4 04             	add    $0x4,%esp
594b8f:	85 c0                	test   %eax,%eax
594b91:	74 36                	je     0x594bc9
594b93:	57                   	push   %edi
594b94:	e8 07 c9 ef ff       	call   0x4914a0
594b99:	50                   	push   %eax
594b9a:	e8 41 2e f1 ff       	call   0x4a79e0
594b9f:	83 c4 08             	add    $0x8,%esp
594ba2:	89 44 24 08          	mov    %eax,0x8(%esp)
594ba6:	85 c0                	test   %eax,%eax
594ba8:	74 3f                	je     0x594be9
594baa:	68 d0 15 4a 00       	push   $0x4a15d0
594baf:	6a 04                	push   $0x4
594bb1:	6a 0c                	push   $0xc
594bb3:	8d 44 24 14          	lea    0x14(%esp),%eax
594bb7:	68 70 82 6c 00       	push   $0x6c8270
594bbc:	50                   	push   %eax
594bbd:	e8 9e 2a f1 ff       	call   0x4a7660
594bc2:	83 c4 14             	add    $0x14,%esp
594bc5:	85 c0                	test   %eax,%eax
594bc7:	74 20                	je     0x594be9
594bc9:	ff 44 24 10          	incl   0x10(%esp)
594bcd:	56                   	push   %esi
594bce:	e8 7d 91 ff ff       	call   0x58dd50
594bd3:	8b 4c 24 14          	mov    0x14(%esp),%ecx
594bd7:	83 c4 04             	add    $0x4,%esp
594bda:	3b c8                	cmp    %eax,%ecx
594bdc:	7c 82                	jl     0x594b60
594bde:	81 4e 28 00 01 00 00 	orl    $0x100,0x28(%esi)
594be5:	5f                   	pop    %edi
594be6:	5e                   	pop    %esi
594be7:	59                   	pop    %ecx
594be8:	c3                   	ret
594be9:	81 4e 28 00 02 00 00 	orl    $0x200,0x28(%esi)
594bf0:	81 4e 28 00 01 00 00 	orl    $0x100,0x28(%esi)
594bf7:	5f                   	pop    %edi
594bf8:	5e                   	pop    %esi
594bf9:	59                   	pop    %ecx
594bfa:	c3                   	ret
594bfb:	90                   	nop
594bfc:	f2 49                	repnz dec %ecx
594bfe:	59                   	pop    %ecx
594bff:	00 f8                	add    %bh,%al
594c01:	49                   	dec    %ecx
594c02:	59                   	pop    %ecx
594c03:	00 04 4a             	add    %al,(%edx,%ecx,2)
594c06:	59                   	pop    %ecx
594c07:	00 fe                	add    %bh,%dh
594c09:	49                   	dec    %ecx
594c0a:	59                   	pop    %ecx
594c0b:	00 10                	add    %dl,(%eax)
594c0d:	4a                   	dec    %edx
594c0e:	59                   	pop    %ecx
594c0f:	00 3a                	add    %bh,(%edx)
594c11:	4a                   	dec    %edx
594c12:	59                   	pop    %ecx
594c13:	00 3a                	add    %bh,(%edx)
594c15:	4a                   	dec    %edx
594c16:	59                   	pop    %ecx
594c17:	00 3a                	add    %bh,(%edx)
594c19:	4a                   	dec    %edx
594c1a:	59                   	pop    %ecx
594c1b:	00 0a                	add    %cl,(%edx)
594c1d:	4a                   	dec    %edx
594c1e:	59                   	pop    %ecx
594c1f:	00 3a                	add    %bh,(%edx)
594c21:	4a                   	dec    %edx
594c22:	59                   	pop    %ecx
594c23:	00 0a                	add    %cl,(%edx)
594c25:	4a                   	dec    %edx
594c26:	59                   	pop    %ecx
594c27:	00 cc                	add    %cl,%ah
594c29:	cc                   	int3
594c2a:	cc                   	int3
594c2b:	cc                   	int3
594c2c:	cc                   	int3
594c2d:	cc                   	int3
594c2e:	cc                   	int3
594c2f:	cc                   	int3
594c30:	ff 74 24 14          	push   0x14(%esp)
594c34:	8b 44 24 08          	mov    0x8(%esp),%eax
594c38:	ff 74 24 14          	push   0x14(%esp)
594c3c:	83 c0 0c             	add    $0xc,%eax
594c3f:	ff 74 24 14          	push   0x14(%esp)
594c43:	ff 74 24 14          	push   0x14(%esp)
594c47:	50                   	push   %eax
594c48:	e8 93 9f fe ff       	call   0x57ebe0
594c4d:	83 c4 14             	add    $0x14,%esp
594c50:	f7 d8                	neg    %eax
594c52:	1b c0                	sbb    %eax,%eax
594c54:	f7 d8                	neg    %eax
594c56:	c3                   	ret
594c57:	cc                   	int3
594c58:	cc                   	int3
594c59:	cc                   	int3
594c5a:	cc                   	int3
594c5b:	cc                   	int3
594c5c:	cc                   	int3
594c5d:	cc                   	int3
594c5e:	cc                   	int3
594c5f:	cc                   	int3
594c60:	ff 74 24 0c          	push   0xc(%esp)
594c64:	8b 44 24 08          	mov    0x8(%esp),%eax
594c68:	ff 74 24 0c          	push   0xc(%esp)
594c6c:	ff 70 0c             	push   0xc(%eax)
594c6f:	e8 2c a0 fe ff       	call   0x57eca0
594c74:	83 c4 0c             	add    $0xc,%esp
594c77:	c3                   	ret
594c78:	cc                   	int3
594c79:	cc                   	int3
594c7a:	cc                   	int3
594c7b:	cc                   	int3
594c7c:	cc                   	int3
594c7d:	cc                   	int3
594c7e:	cc                   	int3
594c7f:	cc                   	int3
594c80:	8b 44 24 04          	mov    0x4(%esp),%eax
594c84:	ff 70 0c             	push   0xc(%eax)
594c87:	e8 94 a0 fe ff       	call   0x57ed20
594c8c:	83 c4 04             	add    $0x4,%esp
594c8f:	c3                   	ret
594c90:	8b 44 24 10          	mov    0x10(%esp),%eax
594c94:	3d 00 00 00 40       	cmp    $0x40000000,%eax
594c99:	73 28                	jae    0x594cc3
594c9b:	a8 07                	test   $0x7,%al
594c9d:	75 24                	jne    0x594cc3
594c9f:	8b 4c 24 04          	mov    0x4(%esp),%ecx
594ca3:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
594ca7:	74 0d                	je     0x594cb6
594ca9:	89 44 24 10          	mov    %eax,0x10(%esp)
594cad:	89 4c 24 04          	mov    %ecx,0x4(%esp)
594cb1:	e9 ea 06 00 00       	jmp    0x5953a0
594cb6:	89 44 24 10          	mov    %eax,0x10(%esp)
594cba:	89 4c 24 04          	mov    %ecx,0x4(%esp)
594cbe:	e9 4d 05 00 00       	jmp    0x595210
594cc3:	83 c8 ff             	or     $0xffffffff,%eax
594cc6:	c3                   	ret
594cc7:	cc                   	int3
594cc8:	cc                   	int3
594cc9:	cc                   	int3
594cca:	cc                   	int3
594ccb:	cc                   	int3
594ccc:	cc                   	int3
594ccd:	cc                   	int3
594cce:	cc                   	int3
594ccf:	cc                   	int3
594cd0:	8b 44 24 04          	mov    0x4(%esp),%eax
594cd4:	56                   	push   %esi
594cd5:	57                   	push   %edi
594cd6:	8b 7c 24 10          	mov    0x10(%esp),%edi
594cda:	8b 70 60             	mov    0x60(%eax),%esi
594cdd:	56                   	push   %esi
594cde:	57                   	push   %edi
594cdf:	c7 86 80 01 00 00 00 	movl   $0x0,0x180(%esi)
594ce6:	00 00 00
594ce9:	e8 62 d7 00 00       	call   0x5a2450
594cee:	8d 86 80 00 00 00    	lea    0x80(%esi),%eax
594cf4:	50                   	push   %eax
594cf5:	8d 47 08             	lea    0x8(%edi),%eax
594cf8:	50                   	push   %eax
594cf9:	e8 52 d7 00 00       	call   0x5a2450
594cfe:	83 c4 10             	add    $0x10,%esp
594d01:	8d be 00 01 00 00    	lea    0x100(%esi),%edi
594d07:	b9 20 00 00 00       	mov    $0x20,%ecx
594d0c:	b8 01 00 00 00       	mov    $0x1,%eax
594d11:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
594d13:	5f                   	pop    %edi
594d14:	5e                   	pop    %esi
594d15:	c3                   	ret
594d16:	cc                   	int3
594d17:	cc                   	int3
594d18:	cc                   	int3
594d19:	cc                   	int3
594d1a:	cc                   	int3
594d1b:	cc                   	int3
594d1c:	cc                   	int3
594d1d:	cc                   	int3
594d1e:	cc                   	int3
594d1f:	cc                   	int3
594d20:	8b 44 24 04          	mov    0x4(%esp),%eax
594d24:	56                   	push   %esi
594d25:	8b 74 24 0c          	mov    0xc(%esp),%esi
594d29:	57                   	push   %edi
594d2a:	8b 78 60             	mov    0x60(%eax),%edi
594d2d:	57                   	push   %edi
594d2e:	56                   	push   %esi
594d2f:	c7 87 80 01 00 00 00 	movl   $0x0,0x180(%edi)
594d36:	00 00 00
594d39:	e8 12 d7 00 00       	call   0x5a2450
594d3e:	8d 87 80 00 00 00    	lea    0x80(%edi),%eax
594d44:	50                   	push   %eax
594d45:	8d 46 08             	lea    0x8(%esi),%eax
594d48:	50                   	push   %eax
594d49:	e8 02 d7 00 00       	call   0x5a2450
594d4e:	8d 87 00 01 00 00    	lea    0x100(%edi),%eax
594d54:	50                   	push   %eax
594d55:	8d 46 10             	lea    0x10(%esi),%eax
594d58:	50                   	push   %eax
594d59:	e8 f2 d6 00 00       	call   0x5a2450
594d5e:	83 c4 18             	add    $0x18,%esp
594d61:	b8 01 00 00 00       	mov    $0x1,%eax
594d66:	5f                   	pop    %edi
594d67:	5e                   	pop    %esi
594d68:	c3                   	ret
594d69:	cc                   	int3
594d6a:	cc                   	int3
594d6b:	cc                   	int3
594d6c:	cc                   	int3
594d6d:	cc                   	int3
594d6e:	cc                   	int3
594d6f:	cc                   	int3
594d70:	83 7c 24 08 06       	cmpl   $0x6,0x8(%esp)
594d75:	74 04                	je     0x594d7b
594d77:	83 c8 ff             	or     $0xffffffff,%eax
594d7a:	c3                   	ret
594d7b:	56                   	push   %esi
594d7c:	8b 74 24 14          	mov    0x14(%esp),%esi
594d80:	57                   	push   %edi
594d81:	8b 7c 24 0c          	mov    0xc(%esp),%edi
594d85:	ff 77 58             	push   0x58(%edi)
594d88:	56                   	push   %esi
594d89:	e8 12 c1 ef ff       	call   0x490ea0
594d8e:	83 c4 08             	add    $0x8,%esp
594d91:	85 c0                	test   %eax,%eax
594d93:	7f 05                	jg     0x594d9a
594d95:	5f                   	pop    %edi
594d96:	33 c0                	xor    %eax,%eax
594d98:	5e                   	pop    %esi
594d99:	c3                   	ret
594d9a:	56                   	push   %esi
594d9b:	e8 f0 d8 00 00       	call   0x5a2690
594da0:	83 c4 04             	add    $0x4,%esp
594da3:	83 7f 58 10          	cmpl   $0x10,0x58(%edi)
594da7:	7c 0c                	jl     0x594db5
594da9:	8d 46 08             	lea    0x8(%esi),%eax
594dac:	50                   	push   %eax
594dad:	e8 de d8 00 00       	call   0x5a2690
594db2:	83 c4 04             	add    $0x4,%esp
594db5:	83 7f 58 18          	cmpl   $0x18,0x58(%edi)
594db9:	7c 0c                	jl     0x594dc7
594dbb:	8d 46 10             	lea    0x10(%esi),%eax
594dbe:	50                   	push   %eax
594dbf:	e8 cc d8 00 00       	call   0x5a2690
594dc4:	83 c4 04             	add    $0x4,%esp
594dc7:	5f                   	pop    %edi
594dc8:	b8 01 00 00 00       	mov    $0x1,%eax
594dcd:	5e                   	pop    %esi
594dce:	c3                   	ret
594dcf:	cc                   	int3
594dd0:	55                   	push   %ebp
594dd1:	8b 6c 24 08          	mov    0x8(%esp),%ebp
594dd5:	57                   	push   %edi
594dd6:	8b 45 00             	mov    0x0(%ebp),%eax
594dd9:	8b 78 04             	mov    0x4(%eax),%edi
594ddc:	8b 44 24 18          	mov    0x18(%esp),%eax
594de0:	3b c7                	cmp    %edi,%eax
594de2:	72 4e                	jb     0x594e32
594de4:	8b 54 24 10          	mov    0x10(%esp),%edx
594de8:	2b c7                	sub    %edi,%eax
594dea:	53                   	push   %ebx
594deb:	56                   	push   %esi
594dec:	8b 74 24 1c          	mov    0x1c(%esp),%esi
594df0:	33 db                	xor    %ebx,%ebx
594df2:	2b d6                	sub    %esi,%edx
594df4:	89 44 24 20          	mov    %eax,0x20(%esp)
594df8:	89 54 24 18          	mov    %edx,0x18(%esp)
594dfc:	0f 1f 40 00          	nopl   0x0(%eax)
594e00:	8b 4d 60             	mov    0x60(%ebp),%ecx
594e03:	ff 75 08             	push   0x8(%ebp)
594e06:	8d 81 00 01 00 00    	lea    0x100(%ecx),%eax
594e0c:	50                   	push   %eax
594e0d:	8d 81 80 00 00 00    	lea    0x80(%ecx),%eax
594e13:	50                   	push   %eax
594e14:	51                   	push   %ecx
594e15:	8d 04 32             	lea    (%edx,%esi,1),%eax
594e18:	50                   	push   %eax
594e19:	56                   	push   %esi
594e1a:	e8 91 bf 00 00       	call   0x5a0db0
594e1f:	8b 54 24 30          	mov    0x30(%esp),%edx
594e23:	03 df                	add    %edi,%ebx
594e25:	83 c4 18             	add    $0x18,%esp
594e28:	03 f7                	add    %edi,%esi
594e2a:	3b 5c 24 20          	cmp    0x20(%esp),%ebx
594e2e:	76 d0                	jbe    0x594e00
594e30:	5e                   	pop    %esi
594e31:	5b                   	pop    %ebx
594e32:	5f                   	pop    %edi
594e33:	b8 01 00 00 00       	mov    $0x1,%eax