593b01:	0f 84 8d 00 00 00    	je     0x593b94
593b07:	8b 5d 14             	mov    0x14(%ebp),%ebx
593b0a:	8d 44 24 20          	lea    0x20(%esp),%eax
593b0e:	50                   	push   %eax
593b0f:	e8 fc d4 ef ff       	call   0x491010
593b14:	8b c8                	mov    %eax,%ecx
593b16:	33 d2                	xor    %edx,%edx
593b18:	8d 43 03             	lea    0x3(%ebx),%eax
593b1b:	83 c4 04             	add    $0x4,%esp
593b1e:	03 c1                	add    %ecx,%eax
593b20:	f7 f1                	div    %ecx
593b22:	8b d0                	mov    %eax,%edx
593b24:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
593b27:	0f af d1             	imul   %ecx,%edx
593b2a:	3b d0                	cmp    %eax,%edx
593b2c:	0f 82 ed 00 00 00    	jb     0x593c1f
593b32:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
593b38:	0f 87 e1 00 00 00    	ja     0x593c1f
593b3e:	68 8b 01 00 00       	push   $0x18b
593b43:	68 e4 80 6c 00       	push   $0x6c80e4
593b48:	52                   	push   %edx
593b49:	89 54 24 20          	mov    %edx,0x20(%esp)
593b4d:	e8 5e c6 f0 ff       	call   0x4a01b0
593b52:	8b f0                	mov    %eax,%esi
593b54:	83 c4 0c             	add    $0xc,%esp
593b57:	85 f6                	test   %esi,%esi
593b59:	0f 84 c0 00 00 00    	je     0x593c1f
593b5f:	8d 44 24 20          	lea    0x20(%esp),%eax
593b63:	50                   	push   %eax
593b64:	ff 75 14             	push   0x14(%ebp)
593b67:	8d 44 24 1c          	lea    0x1c(%esp),%eax
593b6b:	ff 75 10             	push   0x10(%ebp)
593b6e:	50                   	push   %eax
593b6f:	56                   	push   %esi
593b70:	e8 6b 02 00 00       	call   0x593de0
593b75:	83 c4 14             	add    $0x14,%esp
593b78:	85 c0                	test   %eax,%eax
593b7a:	0f 84 9f 00 00 00    	je     0x593c1f
593b80:	8b 47 0c             	mov    0xc(%edi),%eax
593b83:	89 70 08             	mov    %esi,0x8(%eax)
593b86:	8b 4f 0c             	mov    0xc(%edi),%ecx
593b89:	8b 44 24 14          	mov    0x14(%esp),%eax
593b8d:	89 01                	mov    %eax,(%ecx)
593b8f:	e9 83 00 00 00       	jmp    0x593c17
593b94:	8b 47 0c             	mov    0xc(%edi),%eax
593b97:	68 95 01 00 00       	push   $0x195
593b9c:	68 e4 80 6c 00       	push   $0x6c80e4
593ba1:	ff 30                	push   (%eax)
593ba3:	e8 08 c6 f0 ff       	call   0x4a01b0
593ba8:	8b f0                	mov    %eax,%esi
593baa:	83 c4 0c             	add    $0xc,%esp
593bad:	85 f6                	test   %esi,%esi
593baf:	75 1d                	jne    0x593bce
593bb1:	68 98 01 00 00       	push   $0x198
593bb6:	68 e4 80 6c 00       	push   $0x6c80e4
593bbb:	6a 41                	push   $0x41
593bbd:	68 a7 00 00 00       	push   $0xa7
593bc2:	6a 2e                	push   $0x2e
593bc4:	e8 d7 d8 f0 ff       	call   0x4a14a0
593bc9:	83 c4 14             	add    $0x14,%esp
593bcc:	eb 51                	jmp    0x593c1f
593bce:	8b 47 0c             	mov    0xc(%edi),%eax
593bd1:	8d 4c 24 20          	lea    0x20(%esp),%ecx
593bd5:	51                   	push   %ecx
593bd6:	ff 30                	push   (%eax)
593bd8:	ff 70 08             	push   0x8(%eax)
593bdb:	8d 44 24 20          	lea    0x20(%esp),%eax
593bdf:	50                   	push   %eax
593be0:	56                   	push   %esi
593be1:	e8 ba 00 00 00       	call   0x593ca0
593be6:	83 c4 14             	add    $0x14,%esp
593be9:	85 c0                	test   %eax,%eax
593beb:	75 20                	jne    0x593c0d
593bed:	68 9e 01 00 00       	push   $0x19e
593bf2:	68 e4 80 6c 00       	push   $0x6c80e4
593bf7:	68 b4 00 00 00       	push   $0xb4
593bfc:	68 a7 00 00 00       	push   $0xa7
593c01:	6a 2e                	push   $0x2e
593c03:	e8 98 d8 f0 ff       	call   0x4a14a0
593c08:	83 c4 14             	add    $0x14,%esp
593c0b:	eb 12                	jmp    0x593c1f
593c0d:	8b 44 24 14          	mov    0x14(%esp),%eax
593c11:	89 75 10             	mov    %esi,0x10(%ebp)
593c14:	89 45 14             	mov    %eax,0x14(%ebp)
593c17:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
593c1e:	00
593c1f:	8b 5c 24 10          	mov    0x10(%esp),%ebx
593c23:	8d 44 24 20          	lea    0x20(%esp),%eax
593c27:	50                   	push   %eax
593c28:	e8 b3 b2 ef ff       	call   0x48eee0
593c2d:	8b 7c 24 20          	mov    0x20(%esp),%edi
593c31:	83 c4 04             	add    $0x4,%esp
593c34:	85 ff                	test   %edi,%edi
593c36:	75 0d                	jne    0x593c45
593c38:	85 f6                	test   %esi,%esi
593c3a:	74 09                	je     0x593c45
593c3c:	56                   	push   %esi
593c3d:	e8 ee c4 f0 ff       	call   0x4a0130
593c42:	83 c4 04             	add    $0x4,%esp
593c45:	53                   	push   %ebx
593c46:	e8 f5 a3 fe ff       	call   0x57e040
593c4b:	83 c4 04             	add    $0x4,%esp
593c4e:	8b c7                	mov    %edi,%eax
593c50:	eb 31                	jmp    0x593c83
593c52:	68 64 01 00 00       	push   $0x164
593c57:	68 e4 80 6c 00       	push   $0x6c80e4
593c5c:	68 b0 00 00 00       	push   $0xb0
593c61:	eb 0f                	jmp    0x593c72
593c63:	68 59 01 00 00       	push   $0x159
593c68:	68 e4 80 6c 00       	push   $0x6c80e4
593c6d:	68 b3 00 00 00       	push   $0xb3
593c72:	68 a7 00 00 00       	push   $0xa7
593c77:	6a 2e                	push   $0x2e
593c79:	e8 22 d8 f0 ff       	call   0x4a14a0
593c7e:	83 c4 14             	add    $0x14,%esp
593c81:	33 c0                	xor    %eax,%eax
593c83:	8b 8c 24 ac 00 00 00 	mov    0xac(%esp),%ecx
593c8a:	5b                   	pop    %ebx
593c8b:	5f                   	pop    %edi
593c8c:	5e                   	pop    %esi
593c8d:	5d                   	pop    %ebp
593c8e:	33 cc                	xor    %esp,%ecx
593c90:	e8 45 d8 04 00       	call   0x5e14da
593c95:	81 c4 a0 00 00 00    	add    $0xa0,%esp
593c9b:	c3                   	ret
593c9c:	cc                   	int3
593c9d:	cc                   	int3
593c9e:	cc                   	int3
593c9f:	cc                   	int3
593ca0:	b8 08 00 00 00       	mov    $0x8,%eax
593ca5:	e8 46 d8 04 00       	call   0x5e14f0
593caa:	53                   	push   %ebx
593cab:	55                   	push   %ebp
593cac:	56                   	push   %esi
593cad:	ff 74 24 28          	push   0x28(%esp)
593cb1:	e8 5a d3 ef ff       	call   0x491010
593cb6:	8b 5c 24 28          	mov    0x28(%esp),%ebx
593cba:	8b e8                	mov    %eax,%ebp
593cbc:	83 c4 04             	add    $0x4,%esp
593cbf:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
593cc6:	00
593cc7:	8d 34 6d 00 00 00 00 	lea    0x0(,%ebp,2),%esi
593cce:	3b de                	cmp    %esi,%ebx
593cd0:	73 09                	jae    0x593cdb
593cd2:	5e                   	pop    %esi
593cd3:	5d                   	pop    %ebp
593cd4:	33 c0                	xor    %eax,%eax
593cd6:	5b                   	pop    %ebx
593cd7:	83 c4 08             	add    $0x8,%esp
593cda:	c3                   	ret
593cdb:	33 d2                	xor    %edx,%edx
593cdd:	8b c3                	mov    %ebx,%eax
593cdf:	f7 f5                	div    %ebp
593ce1:	85 d2                	test   %edx,%edx
593ce3:	75 ed                	jne    0x593cd2
593ce5:	57                   	push   %edi
593ce6:	68 ec 00 00 00       	push   $0xec
593ceb:	68 e4 80 6c 00       	push   $0x6c80e4
593cf0:	53                   	push   %ebx
593cf1:	e8 ba c4 f0 ff       	call   0x4a01b0
593cf6:	8b f8                	mov    %eax,%edi
593cf8:	83 c4 0c             	add    $0xc,%esp
593cfb:	85 ff                	test   %edi,%edi
593cfd:	75 08                	jne    0x593d07
593cff:	5f                   	pop    %edi
593d00:	5e                   	pop    %esi
593d01:	5d                   	pop    %ebp
593d02:	5b                   	pop    %ebx
593d03:	83 c4 08             	add    $0x8,%esp
593d06:	c3                   	ret
593d07:	56                   	push   %esi
593d08:	8b 74 24 28          	mov    0x28(%esp),%esi
593d0c:	8d 0c 6d 00 00 00 00 	lea    0x0(,%ebp,2),%ecx
593d13:	8b c6                	mov    %esi,%eax
593d15:	2b c1                	sub    %ecx,%eax
593d17:	03 c3                	add    %ebx,%eax
593d19:	50                   	push   %eax
593d1a:	8d 44 24 18          	lea    0x18(%esp),%eax
593d1e:	50                   	push   %eax
593d1f:	8b c7                	mov    %edi,%eax
593d21:	2b c1                	sub    %ecx,%eax
593d23:	03 c3                	add    %ebx,%eax
593d25:	50                   	push   %eax
593d26:	ff 74 24 3c          	push   0x3c(%esp)
593d2a:	e8 b1 b9 ef ff       	call   0x48f6e0
593d2f:	8b c7                	mov    %edi,%eax
593d31:	2b c5                	sub    %ebp,%eax
593d33:	55                   	push   %ebp
593d34:	03 c3                	add    %ebx,%eax
593d36:	50                   	push   %eax
593d37:	8d 44 24 2c          	lea    0x2c(%esp),%eax
593d3b:	50                   	push   %eax
593d3c:	57                   	push   %edi
593d3d:	ff 74 24 50          	push   0x50(%esp)
593d41:	e8 9a b9 ef ff       	call   0x48f6e0
593d46:	8b c3                	mov    %ebx,%eax
593d48:	2b c5                	sub    %ebp,%eax
593d4a:	8b 6c 24 54          	mov    0x54(%esp),%ebp
593d4e:	50                   	push   %eax
593d4f:	56                   	push   %esi
593d50:	8d 44 24 40          	lea    0x40(%esp),%eax
593d54:	50                   	push   %eax
593d55:	57                   	push   %edi
593d56:	55                   	push   %ebp
593d57:	e8 84 b9 ef ff       	call   0x48f6e0
593d5c:	6a 00                	push   $0x0
593d5e:	6a 00                	push   $0x0
593d60:	6a 00                	push   $0x0
593d62:	6a 00                	push   $0x0
593d64:	55                   	push   %ebp
593d65:	e8 56 b9 ef ff       	call   0x48f6c0
593d6a:	83 c4 50             	add    $0x50,%esp
593d6d:	8d 44 24 10          	lea    0x10(%esp),%eax
593d71:	53                   	push   %ebx
593d72:	57                   	push   %edi
593d73:	50                   	push   %eax
593d74:	57                   	push   %edi
593d75:	55                   	push   %ebp
593d76:	e8 65 b9 ef ff       	call   0x48f6e0
593d7b:	0f b6 47 05          	movzbl 0x5(%edi),%eax
593d7f:	8d 57 04             	lea    0x4(%edi),%edx
593d82:	32 47 02             	xor    0x2(%edi),%al
593d85:	83 c4 14             	add    $0x14,%esp
593d88:	8a 4f 06             	mov    0x6(%edi),%cl
593d8b:	32 4f 03             	xor    0x3(%edi),%cl
593d8e:	22 c8                	and    %al,%cl
593d90:	0f b6 47 01          	movzbl 0x1(%edi),%eax
593d94:	32 02                	xor    (%edx),%al
593d96:	22 c8                	and    %al,%cl
593d98:	80 f9 ff             	cmp    $0xff,%cl
593d9b:	75 26                	jne    0x593dc3
593d9d:	0f b6 0f             	movzbl (%edi),%ecx
593da0:	8d 41 fc             	lea    -0x4(%ecx),%eax
593da3:	3b d8                	cmp    %eax,%ebx
593da5:	72 1c                	jb     0x593dc3
593da7:	8b 44 24 20          	mov    0x20(%esp),%eax
593dab:	51                   	push   %ecx
593dac:	52                   	push   %edx
593dad:	ff 74 24 24          	push   0x24(%esp)
593db1:	89 08                	mov    %ecx,(%eax)
593db3:	e8 48 f1 04 00       	call   0x5e2f00
593db8:	83 c4 0c             	add    $0xc,%esp
593dbb:	c7 44 24 14 01 00 00 	movl   $0x1,0x14(%esp)
593dc2:	00
593dc3:	53                   	push   %ebx
593dc4:	57                   	push   %edi
593dc5:	e8 86 c5 f0 ff       	call   0x4a0350
593dca:	57                   	push   %edi
593dcb:	e8 60 c3 f0 ff       	call   0x4a0130
593dd0:	8b 44 24 20          	mov    0x20(%esp),%eax
593dd4:	83 c4 0c             	add    $0xc,%esp
593dd7:	5f                   	pop    %edi
593dd8:	5e                   	pop    %esi
593dd9:	5d                   	pop    %ebp
593dda:	5b                   	pop    %ebx
593ddb:	83 c4 08             	add    $0x8,%esp
593dde:	c3                   	ret
593ddf:	cc                   	int3
593de0:	b8 04 00 00 00       	mov    $0x4,%eax
593de5:	e8 06 d7 04 00       	call   0x5e14f0
593dea:	53                   	push   %ebx
593deb:	55                   	push   %ebp
593dec:	8b 6c 24 20          	mov    0x20(%esp),%ebp
593df0:	57                   	push   %edi
593df1:	55                   	push   %ebp
593df2:	e8 19 d2 ef ff       	call   0x491010
593df7:	8b 5c 24 24          	mov    0x24(%esp),%ebx
593dfb:	8b c8                	mov    %eax,%ecx
593dfd:	33 d2                	xor    %edx,%edx
593dff:	83 c4 04             	add    $0x4,%esp
593e02:	8d 43 03             	lea    0x3(%ebx),%eax
593e05:	03 c1                	add    %ecx,%eax
593e07:	f7 f1                	div    %ecx
593e09:	8b f8                	mov    %eax,%edi
593e0b:	0f af f9             	imul   %ecx,%edi
593e0e:	03 c9                	add    %ecx,%ecx
593e10:	3b f9                	cmp    %ecx,%edi
593e12:	73 07                	jae    0x593e1b
593e14:	5f                   	pop    %edi
593e15:	5d                   	pop    %ebp
593e16:	33 c0                	xor    %eax,%eax
593e18:	5b                   	pop    %ebx
593e19:	59                   	pop    %ecx
593e1a:	c3                   	ret
593e1b:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
593e21:	77 f1                	ja     0x593e14
593e23:	56                   	push   %esi
593e24:	8b 74 24 18          	mov    0x18(%esp),%esi
593e28:	85 f6                	test   %esi,%esi
593e2a:	74 76                	je     0x593ea2
593e2c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
593e30:	88 1e                	mov    %bl,(%esi)
593e32:	53                   	push   %ebx
593e33:	51                   	push   %ecx
593e34:	0f b6 01             	movzbl (%ecx),%eax
593e37:	f6 d0                	not    %al
593e39:	88 46 01             	mov    %al,0x1(%esi)
593e3c:	0f b6 41 01          	movzbl 0x1(%ecx),%eax
593e40:	f6 d0                	not    %al
593e42:	88 46 02             	mov    %al,0x2(%esi)
593e45:	0f b6 41 02          	movzbl 0x2(%ecx),%eax
593e49:	f6 d0                	not    %al
593e4b:	88 46 03             	mov    %al,0x3(%esi)
593e4e:	8d 46 04             	lea    0x4(%esi),%eax
593e51:	50                   	push   %eax
593e52:	e8 a9 f0 04 00       	call   0x5e2f00
593e57:	8d 43 04             	lea    0x4(%ebx),%eax
593e5a:	83 c4 0c             	add    $0xc,%esp
593e5d:	3b f8                	cmp    %eax,%edi
593e5f:	76 22                	jbe    0x593e83
593e61:	8b c7                	mov    %edi,%eax
593e63:	2b c3                	sub    %ebx,%eax
593e65:	83 e8 04             	sub    $0x4,%eax
593e68:	50                   	push   %eax
593e69:	8d 43 04             	lea    0x4(%ebx),%eax
593e6c:	03 c6                	add    %esi,%eax
593e6e:	50                   	push   %eax
593e6f:	e8 2c d0 ef ff       	call   0x490ea0
593e74:	83 c4 08             	add    $0x8,%esp
593e77:	85 c0                	test   %eax,%eax
593e79:	7f 08                	jg     0x593e83
593e7b:	5e                   	pop    %esi
593e7c:	5f                   	pop    %edi
593e7d:	5d                   	pop    %ebp
593e7e:	33 c0                	xor    %eax,%eax
593e80:	5b                   	pop    %ebx
593e81:	59                   	pop    %ecx
593e82:	c3                   	ret
593e83:	57                   	push   %edi
593e84:	56                   	push   %esi
593e85:	8d 44 24 18          	lea    0x18(%esp),%eax
593e89:	50                   	push   %eax
593e8a:	56                   	push   %esi
593e8b:	55                   	push   %ebp
593e8c:	e8 af ba ef ff       	call   0x48f940
593e91:	57                   	push   %edi
593e92:	56                   	push   %esi
593e93:	8d 44 24 2c          	lea    0x2c(%esp),%eax
593e97:	50                   	push   %eax
593e98:	56                   	push   %esi
593e99:	55                   	push   %ebp
593e9a:	e8 a1 ba ef ff       	call   0x48f940
593e9f:	83 c4 28             	add    $0x28,%esp
593ea2:	8b 44 24 1c          	mov    0x1c(%esp),%eax
593ea6:	5e                   	pop    %esi
593ea7:	89 38                	mov    %edi,(%eax)
593ea9:	b8 01 00 00 00       	mov    $0x1,%eax
593eae:	5f                   	pop    %edi
593eaf:	5d                   	pop    %ebp
593eb0:	5b                   	pop    %ebx