573b64:	83 48 0c 10          	orl    $0x10,0xc(%eax)
573b68:	8b 06                	mov    (%esi),%eax
573b6a:	83 60 0c df          	andl   $0xffffffdf,0xc(%eax)
573b6e:	8b 0e                	mov    (%esi),%ecx
573b70:	8b 44 24 08          	mov    0x8(%esp),%eax
573b74:	83 c1 08             	add    $0x8,%ecx
573b77:	5e                   	pop    %esi
573b78:	89 08                	mov    %ecx,(%eax)
573b7a:	b8 01 00 00 00       	mov    $0x1,%eax
573b7f:	c3                   	ret
573b80:	6a 1f                	push   $0x1f
573b82:	68 30 a5 65 00       	push   $0x65a530
573b87:	6a 41                	push   $0x41
573b89:	68 9b 00 00 00       	push   $0x9b
573b8e:	6a 2e                	push   $0x2e
573b90:	e8 eb 53 f6 ff       	call   0x4d8f80
573b95:	83 c4 14             	add    $0x14,%esp
573b98:	33 c0                	xor    %eax,%eax
573b9a:	5e                   	pop    %esi
573b9b:	c3                   	ret
573b9c:	cc                   	int3
573b9d:	cc                   	int3
573b9e:	cc                   	int3
573b9f:	cc                   	int3
573ba0:	56                   	push   %esi
573ba1:	ff 74 24 08          	push   0x8(%esp)
573ba5:	8b 74 24 10          	mov    0x10(%esp),%esi
573ba9:	56                   	push   %esi
573baa:	e8 5a 35 07 00       	call   0x5e7109
573baf:	83 c4 08             	add    $0x8,%esp
573bb2:	33 c9                	xor    %ecx,%ecx
573bb4:	85 c0                	test   %eax,%eax
573bb6:	0f 45 f1             	cmovne %ecx,%esi
573bb9:	8b c6                	mov    %esi,%eax
573bbb:	5e                   	pop    %esi
573bbc:	c3                   	ret
573bbd:	cc                   	int3
573bbe:	cc                   	int3
573bbf:	cc                   	int3
573bc0:	b8 08 00 00 00       	mov    $0x8,%eax
573bc5:	e8 e6 db 05 00       	call   0x5d17b0
573bca:	53                   	push   %ebx
573bcb:	8b 5c 24 10          	mov    0x10(%esp),%ebx
573bcf:	8d 44 24 08          	lea    0x8(%esp),%eax
573bd3:	55                   	push   %ebp
573bd4:	56                   	push   %esi
573bd5:	57                   	push   %edi
573bd6:	50                   	push   %eax
573bd7:	8d 44 24 14          	lea    0x14(%esp),%eax
573bdb:	50                   	push   %eax
573bdc:	ff 74 24 2c          	push   0x2c(%esp)
573be0:	ff 74 24 2c          	push   0x2c(%esp)
573be4:	53                   	push   %ebx
573be5:	e8 f6 01 00 00       	call   0x573de0
573bea:	83 c4 14             	add    $0x14,%esp
573bed:	85 c0                	test   %eax,%eax
573bef:	0f 84 32 01 00 00    	je     0x573d27
573bf5:	8b 6c 24 10          	mov    0x10(%esp),%ebp
573bf9:	b8 bd 06 6b 39       	mov    $0x396b06bd,%eax
573bfe:	81 c5 d9 0b 01 00    	add    $0x10bd9,%ebp
573c04:	8d 0c ad 00 00 00 00 	lea    0x0(,%ebp,4),%ecx
573c0b:	f7 e9                	imul   %ecx
573c0d:	c1 fa 0f             	sar    $0xf,%edx
573c10:	8b fa                	mov    %edx,%edi
573c12:	c1 ef 1f             	shr    $0x1f,%edi
573c15:	03 fa                	add    %edx,%edi
573c17:	69 c7 b1 3a 02 00    	imul   $0x23ab1,%edi,%eax
573c1d:	83 c0 03             	add    $0x3,%eax
573c20:	99                   	cltd
573c21:	83 e2 03             	and    $0x3,%edx
573c24:	03 c2                	add    %edx,%eax
573c26:	c1 f8 02             	sar    $0x2,%eax
573c29:	f7 d8                	neg    %eax
573c2b:	03 e8                	add    %eax,%ebp
573c2d:	8d 45 01             	lea    0x1(%ebp),%eax
573c30:	69 c8 a0 0f 00 00    	imul   $0xfa0,%eax,%ecx
573c36:	b8 dd e2 bb b7       	mov    $0xb7bbe2dd,%eax
573c3b:	f7 e9                	imul   %ecx
573c3d:	03 d1                	add    %ecx,%edx
573c3f:	b9 1f 00 00 00       	mov    $0x1f,%ecx
573c44:	c1 fa 14             	sar    $0x14,%edx
573c47:	8b f2                	mov    %edx,%esi
573c49:	c1 ee 1f             	shr    $0x1f,%esi
573c4c:	03 f2                	add    %edx,%esi
573c4e:	69 c6 b5 05 00 00    	imul   $0x5b5,%esi,%eax
573c54:	99                   	cltd
573c55:	83 e2 03             	and    $0x3,%edx
573c58:	03 c2                	add    %edx,%eax
573c5a:	c1 f8 02             	sar    $0x2,%eax
573c5d:	2b c8                	sub    %eax,%ecx
573c5f:	b8 19 3d c8 1a       	mov    $0x1ac83d19,%eax
573c64:	03 e9                	add    %ecx,%ebp
573c66:	89 6c 24 10          	mov    %ebp,0x10(%esp)
573c6a:	8d 0c ad 00 00 00 00 	lea    0x0(,%ebp,4),%ecx
573c71:	03 cd                	add    %ebp,%ecx
573c73:	c1 e1 04             	shl    $0x4,%ecx
573c76:	f7 e9                	imul   %ecx
573c78:	b8 67 66 66 66       	mov    $0x66666667,%eax
573c7d:	c1 fa 08             	sar    $0x8,%edx
573c80:	8b ea                	mov    %edx,%ebp
573c82:	c1 ed 1f             	shr    $0x1f,%ebp
573c85:	03 ea                	add    %edx,%ebp
573c87:	69 cd 8f 09 00 00    	imul   $0x98f,%ebp,%ecx
573c8d:	f7 e9                	imul   %ecx
573c8f:	c1 fa 05             	sar    $0x5,%edx
573c92:	8b c2                	mov    %edx,%eax
573c94:	c1 e8 1f             	shr    $0x1f,%eax
573c97:	03 c2                	add    %edx,%eax
573c99:	29 44 24 10          	sub    %eax,0x10(%esp)
573c9d:	b8 e9 a2 8b 2e       	mov    $0x2e8ba2e9,%eax
573ca2:	f7 ed                	imul   %ebp
573ca4:	8d 47 bc             	lea    -0x44(%edi),%eax
573ca7:	d1 fa                	sar    $1,%edx
573ca9:	6b c0 64             	imul   $0x64,%eax,%eax
573cac:	8b ca                	mov    %edx,%ecx
573cae:	c1 e9 1f             	shr    $0x1f,%ecx
573cb1:	03 ca                	add    %edx,%ecx
573cb3:	03 c1                	add    %ecx,%eax
573cb5:	03 c6                	add    %esi,%eax
573cb7:	3d a3 1f 00 00       	cmp    $0x1fa3,%eax
573cbc:	77 69                	ja     0x573d27
573cbe:	8b 74 24 14          	mov    0x14(%esp),%esi
573cc2:	bf 3c 00 00 00       	mov    $0x3c,%edi
573cc7:	89 43 14             	mov    %eax,0x14(%ebx)
573cca:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
573ccd:	c1 e0 02             	shl    $0x2,%eax
573cd0:	2b e8                	sub    %eax,%ebp
573cd2:	8b 44 24 10          	mov    0x10(%esp),%eax
573cd6:	89 43 0c             	mov    %eax,0xc(%ebx)
573cd9:	45                   	inc    %ebp
573cda:	b8 c5 b3 a2 91       	mov    $0x91a2b3c5,%eax
573cdf:	89 6b 10             	mov    %ebp,0x10(%ebx)
573ce2:	f7 ee                	imul   %esi
573ce4:	03 d6                	add    %esi,%edx
573ce6:	c1 fa 0b             	sar    $0xb,%edx
573ce9:	8b c2                	mov    %edx,%eax
573ceb:	c1 e8 1f             	shr    $0x1f,%eax
573cee:	03 c2                	add    %edx,%eax
573cf0:	89 43 08             	mov    %eax,0x8(%ebx)
573cf3:	b8 89 88 88 88       	mov    $0x88888889,%eax
573cf8:	f7 ee                	imul   %esi
573cfa:	03 d6                	add    %esi,%edx
573cfc:	c1 fa 05             	sar    $0x5,%edx
573cff:	8b ca                	mov    %edx,%ecx
573d01:	c1 e9 1f             	shr    $0x1f,%ecx
573d04:	03 ca                	add    %edx,%ecx
573d06:	8b c1                	mov    %ecx,%eax
573d08:	99                   	cltd
573d09:	f7 ff                	idiv   %edi
573d0b:	8b c1                	mov    %ecx,%eax
573d0d:	c1 e0 04             	shl    $0x4,%eax
573d10:	2b c1                	sub    %ecx,%eax
573d12:	89 53 04             	mov    %edx,0x4(%ebx)
573d15:	c1 e0 02             	shl    $0x2,%eax
573d18:	2b f0                	sub    %eax,%esi
573d1a:	8d 47 c5             	lea    -0x3b(%edi),%eax
573d1d:	5f                   	pop    %edi
573d1e:	89 33                	mov    %esi,(%ebx)
573d20:	5e                   	pop    %esi
573d21:	5d                   	pop    %ebp
573d22:	5b                   	pop    %ebx
573d23:	83 c4 08             	add    $0x8,%esp
573d26:	c3                   	ret
573d27:	5f                   	pop    %edi
573d28:	5e                   	pop    %esi
573d29:	5d                   	pop    %ebp
573d2a:	33 c0                	xor    %eax,%eax
573d2c:	5b                   	pop    %ebx
573d2d:	83 c4 08             	add    $0x8,%esp
573d30:	c3                   	ret
573d31:	cc                   	int3
573d32:	cc                   	int3
573d33:	cc                   	int3
573d34:	cc                   	int3
573d35:	cc                   	int3
573d36:	cc                   	int3
573d37:	cc                   	int3
573d38:	cc                   	int3
573d39:	cc                   	int3
573d3a:	cc                   	int3
573d3b:	cc                   	int3
573d3c:	cc                   	int3
573d3d:	cc                   	int3
573d3e:	cc                   	int3
573d3f:	cc                   	int3
573d40:	b8 10 00 00 00       	mov    $0x10,%eax
573d45:	e8 66 da 05 00       	call   0x5d17b0
573d4a:	8d 44 24 0c          	lea    0xc(%esp),%eax
573d4e:	50                   	push   %eax
573d4f:	8d 44 24 08          	lea    0x8(%esp),%eax
573d53:	50                   	push   %eax
573d54:	6a 00                	push   $0x0
573d56:	6a 00                	push   $0x0
573d58:	ff 74 24 2c          	push   0x2c(%esp)
573d5c:	e8 7f 00 00 00       	call   0x573de0
573d61:	83 c4 14             	add    $0x14,%esp
573d64:	85 c0                	test   %eax,%eax
573d66:	74 66                	je     0x573dce
573d68:	8d 44 24 08          	lea    0x8(%esp),%eax
573d6c:	50                   	push   %eax
573d6d:	8d 44 24 04          	lea    0x4(%esp),%eax
573d71:	50                   	push   %eax
573d72:	6a 00                	push   $0x0
573d74:	6a 00                	push   $0x0
573d76:	ff 74 24 30          	push   0x30(%esp)
573d7a:	e8 61 00 00 00       	call   0x573de0
573d7f:	83 c4 14             	add    $0x14,%esp
573d82:	85 c0                	test   %eax,%eax
573d84:	74 48                	je     0x573dce
573d86:	8b 0c 24             	mov    (%esp),%ecx
573d89:	8b 44 24 08          	mov    0x8(%esp),%eax
573d8d:	2b 4c 24 04          	sub    0x4(%esp),%ecx
573d91:	2b 44 24 0c          	sub    0xc(%esp),%eax
573d95:	85 c9                	test   %ecx,%ecx
573d97:	7e 0c                	jle    0x573da5
573d99:	85 c0                	test   %eax,%eax
573d9b:	79 14                	jns    0x573db1
573d9d:	49                   	dec    %ecx
573d9e:	05 80 51 01 00       	add    $0x15180,%eax
573da3:	85 c9                	test   %ecx,%ecx
573da5:	79 0a                	jns    0x573db1
573da7:	85 c0                	test   %eax,%eax
573da9:	7e 06                	jle    0x573db1
573dab:	41                   	inc    %ecx
573dac:	2d 80 51 01 00       	sub    $0x15180,%eax
573db1:	8b 54 24 14          	mov    0x14(%esp),%edx
573db5:	85 d2                	test   %edx,%edx
573db7:	74 02                	je     0x573dbb
573db9:	89 0a                	mov    %ecx,(%edx)
573dbb:	8b 4c 24 18          	mov    0x18(%esp),%ecx
573dbf:	85 c9                	test   %ecx,%ecx
573dc1:	74 02                	je     0x573dc5
573dc3:	89 01                	mov    %eax,(%ecx)
573dc5:	b8 01 00 00 00       	mov    $0x1,%eax
573dca:	83 c4 10             	add    $0x10,%esp
573dcd:	c3                   	ret
573dce:	33 c0                	xor    %eax,%eax
573dd0:	83 c4 10             	add    $0x10,%esp
573dd3:	c3                   	ret
573dd4:	cc                   	int3
573dd5:	cc                   	int3
573dd6:	cc                   	int3
573dd7:	cc                   	int3
573dd8:	cc                   	int3
573dd9:	cc                   	int3
573dda:	cc                   	int3
573ddb:	cc                   	int3
573ddc:	cc                   	int3
573ddd:	cc                   	int3
573dde:	cc                   	int3
573ddf:	cc                   	int3
573de0:	53                   	push   %ebx
573de1:	55                   	push   %ebp
573de2:	8b 6c 24 14          	mov    0x14(%esp),%ebp
573de6:	b8 07 45 2e c2       	mov    $0xc22e4507,%eax
573deb:	f7 ed                	imul   %ebp
573ded:	56                   	push   %esi
573dee:	03 d5                	add    %ebp,%edx
573df0:	c1 fa 10             	sar    $0x10,%edx
573df3:	8b da                	mov    %edx,%ebx
573df5:	c1 eb 1f             	shr    $0x1f,%ebx
573df8:	03 da                	add    %edx,%ebx
573dfa:	8b 54 24 10          	mov    0x10(%esp),%edx
573dfe:	69 c3 80 51 01 00    	imul   $0x15180,%ebx,%eax
573e04:	03 5c 24 14          	add    0x14(%esp),%ebx
573e08:	57                   	push   %edi
573e09:	8b 4a 08             	mov    0x8(%edx),%ecx
573e0c:	c1 e1 04             	shl    $0x4,%ecx
573e0f:	2b 4a 08             	sub    0x8(%edx),%ecx
573e12:	2b e8                	sub    %eax,%ebp
573e14:	8b 42 04             	mov    0x4(%edx),%eax
573e17:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
573e1b:	8d 04 88             	lea    (%eax,%ecx,4),%eax
573e1e:	8b c8                	mov    %eax,%ecx
573e20:	c1 e1 04             	shl    $0x4,%ecx
573e23:	2b c8                	sub    %eax,%ecx
573e25:	8b 02                	mov    (%edx),%eax
573e27:	8d 04 88             	lea    (%eax,%ecx,4),%eax
573e2a:	03 e8                	add    %eax,%ebp
573e2c:	81 fd 80 51 01 00    	cmp    $0x15180,%ebp
573e32:	7c 09                	jl     0x573e3d
573e34:	43                   	inc    %ebx
573e35:	81 ed 80 51 01 00    	sub    $0x15180,%ebp
573e3b:	eb 0b                	jmp    0x573e48
573e3d:	85 ed                	test   %ebp,%ebp
573e3f:	79 0b                	jns    0x573e4c
573e41:	4b                   	dec    %ebx
573e42:	81 c5 80 51 01 00    	add    $0x15180,%ebp
573e48:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
573e4c:	8b 7a 10             	mov    0x10(%edx),%edi
573e4f:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
573e54:	47                   	inc    %edi
573e55:	8d 4f f2             	lea    -0xe(%edi),%ecx
573e58:	f7 e9                	imul   %ecx
573e5a:	8b 4c 24 14          	mov    0x14(%esp),%ecx
573e5e:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
573e63:	d1 fa                	sar    $1,%edx
573e65:	8b f2                	mov    %edx,%esi
573e67:	c1 ee 1f             	shr    $0x1f,%esi
573e6a:	8b 59 14             	mov    0x14(%ecx),%ebx
573e6d:	03 f2                	add    %edx,%esi
573e6f:	03 de                	add    %esi,%ebx
573e71:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
573e74:	c1 e1 02             	shl    $0x2,%ecx
573e77:	2b f9                	sub    %ecx,%edi
573e79:	83 ef 02             	sub    $0x2,%edi
573e7c:	69 cf 6f 01 00 00    	imul   $0x16f,%edi,%ecx
573e82:	f7 e9                	imul   %ecx
573e84:	8d 8b 90 1a 00 00    	lea    0x1a90(%ebx),%ecx
573e8a:	b8 1f 85 eb 51       	mov    $0x51eb851f,%eax
573e8f:	d1 fa                	sar    $1,%edx
573e91:	8b f2                	mov    %edx,%esi
573e93:	c1 ee 1f             	shr    $0x1f,%esi
573e96:	03 f2                	add    %edx,%esi
573e98:	f7 e9                	imul   %ecx
573e9a:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
573e9e:	c1 fa 05             	sar    $0x5,%edx
573ea1:	81 c1 b5 82 ff ff    	add    $0xffff82b5,%ecx
573ea7:	8b c2                	mov    %edx,%eax
573ea9:	c1 e8 1f             	shr    $0x1f,%eax
573eac:	03 c2                	add    %edx,%eax
573eae:	8d 04 40             	lea    (%eax,%eax,2),%eax
573eb1:	99                   	cltd
573eb2:	83 e2 03             	and    $0x3,%edx
573eb5:	03 c2                	add    %edx,%eax
573eb7:	c1 f8 02             	sar    $0x2,%eax
573eba:	2b f0                	sub    %eax,%esi
573ebc:	8d 83 2c 1a 00 00    	lea    0x1a2c(%ebx),%eax
573ec2:	69 c0 b5 05 00 00    	imul   $0x5b5,%eax,%eax
573ec8:	99                   	cltd
573ec9:	83 e2 03             	and    $0x3,%edx
573ecc:	03 c2                	add    %edx,%eax
573ece:	c1 f8 02             	sar    $0x2,%eax
573ed1:	03 f0                	add    %eax,%esi
573ed3:	8b 44 24 14          	mov    0x14(%esp),%eax
573ed7:	03 70 0c             	add    0xc(%eax),%esi
573eda:	03 ce                	add    %esi,%ecx
573edc:	79 07                	jns    0x573ee5
573ede:	5f                   	pop    %edi
573edf:	5e                   	pop    %esi
573ee0:	5d                   	pop    %ebp
573ee1:	33 c0                	xor    %eax,%eax
573ee3:	5b                   	pop    %ebx
573ee4:	c3                   	ret
573ee5:	8b 44 24 20          	mov    0x20(%esp),%eax
573ee9:	5f                   	pop    %edi
573eea:	5e                   	pop    %esi
573eeb:	89 08                	mov    %ecx,(%eax)
573eed:	8b 44 24 1c          	mov    0x1c(%esp),%eax
573ef1:	89 28                	mov    %ebp,(%eax)